我想洗掉那些refId
id 與物件陣列的任何 id 不匹配的物件σ,如果refId
為 null 不要洗掉它
[
{id: 1 , refId:null, name:'jhon'},
{id: 2 , refId:null, name:'sam'},
{id: 3 , refId:1, name:'fam'},
{id: 4 , refId:2, name:'jam'},
{id: 5 , refId:16, name:'ram'},
{id: 6 , refId:15, name:'nam'}
]
結果:應該 b:
[
{id: 1 , refId:null, name:'jhon'},
{id: 2 , refId:null, name:'sam'},
{id: 3 , refId:1, name:'fam'},
{id: 4 , refId:2, name:'jam'},
]
uj5u.com熱心網友回復:
請使用以下代碼嘗試一次:
const arr1 = [
{ id: 1, refId: null, name: "jhon" },
{ id: 2, refId: null, name: "sam" },
{ id: 3, refId: 1, name: "fam" },
{ id: 4, refId: 2, name: "jam" },
{ id: 5, refId: 16, name: "ram" },
{ id: 6, refId: 15, name: "nam" },
];
console.log(
arr1.filter((obj) => {
return obj.refId === null || arr1.some((o) => o.id === obj.refId);
})
);
uj5u.com熱心網友回復:
你這里有一個樹結構,如果樹很小,使用過濾器或一些很好,但如果樹很大,你應該嘗試用映射(字典)來做。
let nodes = [
{id: 1 , refId:null, name:'jhon'},
{id: 2 , refId:null, name:'sam'},
{id: 3 , refId:1, name:'fam'},
{id: 4 , refId:2, name:'jam'},
{id: 5 , refId:16, name:'ram'},
{id: 6 , refId:15, name:'nam'}
]
let dictionary = nodes.reduce((dic, node) => { dic[node.id] = true; return dic; }, { [null]: true });
let result = nodes.filter((node) => dictionary[node.refId]);
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/526333.html
標籤:javascript反应
上一篇:如何使用$val從helmforkubernetes的地圖中獲取價值?
下一篇:如何根據背景更改按鈕顏色?