簡體   English   中英

如何使用對象數據在angular2中創建多維數組?

[英]How to create multidimensional array in angular2 with object data?

我有數組對象,但我想創建它的數組:對象格式如下:

[
 {"name":"A1","type":"type1"},
 {"name":"A2","type":"type1"},
 {"name":"A3","type":"type1"},
 {"name":"A4","type":"type1"},
 {"name":"B1","type":"type2"},
 {"name":"C1","type":"type3"},
 {"name":"D1","type":"type4"},
 {"name":"D2","type":"type4"}
]

結果格式如下:

["type1"=>[A1,A2,A3,A4],"type2"=>[B1],"type3"=>[C1],"type3"=>[D1,D2]]

您可以使用Array#forEach迭代數組,並使用類型為鍵的對象。

 var data = [{ "name": "A1", "type": "type1" }, { "name": "A2", "type": "type1" }, { "name": "A3", "type": "type1" }, { "name": "A4", "type": "type1" }, { "name": "B1", "type": "type2" }, { "name": "C1", "type": "type3" }, { "name": "D1", "type": "type4" }, { "name": "D2", "type": "type4" }], grouped = {}; data.forEach(function (a) { grouped[a.type] = grouped[a.type] || []; grouped[a.type].push(a.name); }); console.log(grouped); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

您也可以減少

.reduce((prev, cur) => {
  if (prev.hasOwnProperty(cur.type))
    prev[cur.type].push(cur.name);
  else
    prev[cur.type] = [cur.name];

  return prev;
}, {});

這種方法的好處是,不需要在reduce范圍之外的其他變量,只需返回您的分組對象即可。

小提琴

暫無
暫無

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

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