圖片來源
今天來介紹一下資料處理的好兄弟,Object.entries
以及 Object.fromEntries
。
工作上的需求情境是這樣:
一個物件裡有多個 key,但我只需要複製部份的 key 資料,不用全部時可以使用以下作法。
Object.entries
工作上的老朋友,常用在物件轉換成陣列時使用,方法特色是將物件內的 key 與 value 轉變成一個成對的陣列。
Object.entries1 2 3 4 5 6 7 8 9 10 11
| const obj = { fruits: 'apple', beverage: 'choco milk' };
const outcome = Object.entries(obj); console.log(outcome);
[ 'fruits', 'apple' ], [ 'beverage', 'choco milk' ], ]
|
Object.fromEntries
跟上面的相反,常用在陣列轉換成物件時使用,方法特色是將成對的 key 與 value 轉變成一個物件。
Object.fromEntries1 2 3 4 5 6 7 8 9 10
| const obj = { fruits: 'apple', beverage: 'choco milk' };
const entries = Object.entries(obj); console.log('entries', entries);
const fromEntries = Object.fromEntries(entries); console.log('fromEntries', fromEntries);
|
綜合應用
回到主題,若只需要複製部份的 key 資料可以結合 filter 過濾需要的 key 值:
1 2 3 4 5 6 7 8 9 10 11 12
| const obj = { fruits: 'apple', beverage: 'choco milk' };
const onlyBeverage = Object.entries(obj).filter(([key, value]) => key === 'beverage'); console.log(onlyBeverage);
const transferArrayToObject = Object.fromEntries(onlyBeverage); console.log(transferArrayToObject);
|
參考資料在這
評論