2023年11月20日 星期一

Object.fromEntries() 用於 Set 的注意事項

 Object.fromEntries() 用於 Set 的注意事項

前言

  Object.fromEntries() 可以適用 Map 與 Array ,那可以用於 Set 嗎?答案是可以的,但有個注意事項,在此把學習的過程做個紀錄。


內容

  範例如下

let valueSet1 = new Set( [ 'z' , 12 , 'abc' , 1234 ] );
let valueSet2 = new Set( [ 'z' , 12 , 'abc' , 1234 , '12'] );
//
console.log( valueSet1.size );//4
console.log( Object.fromEntries(valueSet1.entries() ) );
// [object Object] {
//   12: 12,
//   1234: 1234,
//   abc: "abc",
//   z: "z"
// }
//
console.log( valueSet2.size );//5
console.log( Object.fromEntries(valueSet2.entries() ) );
// [object Object] {
//   12: "12",
//   1234: 1234,
//   abc: "abc",
//   z: "z"
// }


範例對 valueSet1 使用 Object.fromEntries() ,要注意不是直接餵,餵之前要透過 Set.entries() ,結果會產生 Key 與 Value 都一樣的 Object ,valueSet2 和 valueSet1 的差異是多了個字串 '12' ,透過 Set.sized可以知道確實有 5 個內容,但經過 Object.fromEntries() 後卻只會剩 4 個!在數字 12 與 字串 12 的部分由於結果是一樣的,所以只會留下一個。


參考資料

[ developer.mozilla.org ] Set

[ developer.mozilla.org ] Object.fromEntries()

沒有留言:

張貼留言