我想創建一個地圖>類型腳本中有類似ID的對象列表,但我沒有得到正確的方法。我知道,在這種情況下可行,但無法實現。這是我曾嘗試創建一個新的地圖類似的ID在對象類型的對象數組
讓我們說我有顏色的列表,像這樣:
[
{
"Id": "1",
"color": "red",
"ref": "tr"
},
{
"Id": "1",
"color": "blue",
"ref": "gt",
},
{
"Id": "2",
"color": "red",
"ref": "tt"
},
]
我試圖構建一個地圖,像這樣
[
1: [
{
"Id": "1",
"color": "red",
"ref": "tr"
},
{
"Id": "1",
"color": "blue",
"ref": "gt",
}
],
2: [
{
"Id": "2",
"color": "red",
"ref": "tt"
}
]
]
這是我試過到目前爲止:
const colorsMap: Map<string, Array<Color>> = new Map<string, Array<Color>>();
let colorLists: Array<Color> = [];
colors.forEach(function (value, i) {
if (value[i - 1]) {
if (colors[i - 1].id=== value.gblId) {
const color = new Color(value.styleId, value.color, value.ref);
colorLists.push(gblRowValue);
} else {
const color = new Color(value.styleId, value.color, value.ref);
colorLists= new Array<Color>();
colorLists.push(color);
}
}
colorsMap.set(value.id, colorLists);
});
結果是每個陣列我只得到一個值:
[
1: [
{
"Id": "1",
"color": "blue",
"ref": "gt",
}
],
2: [
{
"Id": "2",
"color": "red",
"ref": "tt"
}
]
]
值得指出的是,如果您不想導入整個庫,則可以導入各個lodash函數。 –
@GruffBunny仍然傾向於使用「本機」es6而不是導入某些庫代碼,對;) –
如果它是像'_.groupBy(data,'Id');':)這樣的一行代碼,則不行; –