圖片來源
今天來介紹一下資料處理的好兄弟,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);
 
  | 
 
參考資料在這
        
    
     
    
    
    
評論