簡體   English   中英

在ES6中過濾對象以形成另一個對象

[英]Filter Object in ES6 to form another Object

我有一個像下面的對象數組,我試圖只映射某些鍵及其值,以形成另一個數組對象。

以下是我對單個對象的嘗試

const object1 = { app_id:35687,codesmell: 30, baz: 42 };
console.log(Object.entries(object1).map(x => {app_id:x.app_id}));

我總是得到未定義,一直在搜索mdn和stackoverflow無法找到解決方案。 請幫忙。

我試過的另一次嘗試,這次是數組,其中result是一個對象數組

T_BugDetails: result.data.map(x => Object.entries(x).reduce((a,b) => { a, b},{}))

一些問題:

  • Object.entries返回一個數組數組 (鍵的數組和對象的值)。 如果您.mapentries的對象,第一個參數.map應該是關鍵和價值 ,像這樣的數組

     Object.entries(object1).map(([key, val]) => ... 
  • 要從箭頭函數返回一個對象,請將對象的括號( {} )括在括號中,否則它將被解釋為內部帶有標簽的普通函數塊 ,而不是隱式返回的對象:

     => {app_id:x.app_id} 

    => ({app_id:x.app_id})
  • 但是如果你只想要一個由原始對象的app_id組成的對象,不要迭代原始對象的entries ,因為你只想要一個屬性,而不是它的所有屬性 - 而只是提取原始對象的app_id賓語:

 const object1 = { app_id:35687,codesmell: 30, baz: 42 }; const { app_id } = object1; console.log( { app_id } ); 

只有在需要轉換的對象數組時才使用.map ,例如:

 const objects = [ { app_id:35687,codesmell: 30, baz: 42 }, { app_id:12345,codesmell: 20, baz: 52 } ]; console.log( objects.map(({ app_id }) => ({ app_id })) ); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM