如何在javascript中使用filter或forEach只輸出不帶parentId的對象和只有第一級parentId的對象。
應該輸出ID為1681、1682和1683的對象。
不應輸出ID為1685、1686和1687的對象。
array = [ {
"id": 1681,
"label": "1",
"url": "page1",
},
{
"id": 1682,
"label": "2",
"url": "page1",
},
{
"id": 1683,
"label": "a",
"url": "page1",
"parentId": 1681,
},
{
"id": 1685,
"label": "aa",
"url": "page1",
"parentId": 1683,
},
{
"id": 1686,
"label": "aaa",
"url": "page1",
"parentId": 1683,
},
{
"id": 1687,
"label": "aaaa",
"url": "page1",
"parentId": 1683,
}
]
嘗試過這樣的事,運氣不好。
array.forEach((item, i) => {
if(item.id === array[i].parentId){
console.log(item.id);
}
});
如果我們已經在filter函數中找到了parentId,我們必須保存信息。一種簡便的方法是在計數器上使用前綴運算符
++
。這樣我們就可以通過=
繞過一個顯式的長賦值。相反,我們以前就做到了。此外,通過解構賦值,我們可以輕松提取數組項的parentId,并編寫一個非常簡短的過濾器: