Js 物件陣列轉換的方法,真香!

圖片來源

今天來介紹一下資料處理的好兄弟,Object.entries 以及 Object.fromEntries

工作上的需求情境是這樣:
一個物件裡有多個 key,但我只需要複製部份的 key 資料,不用全部時可以使用以下作法。

Object.entries

工作上的老朋友,常用在物件轉換成陣列時使用,方法特色是將物件內的 key 與 value 轉變成一個成對的陣列

Object.entries
1
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.fromEntries
1
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);
// ['beverage', 'choco milk']

const transferArrayToObject = Object.fromEntries(onlyBeverage);
console.log(transferArrayToObject);
// { 'beverage': 'choco milk' }

參考資料在這

Safari IOS 11.3 後 preventDefault 失效問題 RESTful API 方法觀念介紹 - idempotent

評論

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×