我有一個串列陣列:
list: [
{
id: '3',
title: 'hi',
},
{
id: '4',
title: 'there',
},
],
我正在使用一種方法進行一些解構并回傳新陣列,同時按 id 查找專案
return {
title: section.title,
list: [
...section.list,
storeSections[i].list.filter((field) => field.id === ownId)[0],
],
};
如果找到它,它會將它添加到新陣列中,例如這個物件:
{
id: '3515',
title: 'hello',
},
但如果沒有,它會將“未定義”添加到新陣列中,因為過濾器方法將回傳未定義。
是否有一種簡單的方法來更改此行為,以便過濾器方法僅在找到專案時將其添加到陣列中?
uj5u.com熱心網友回復:
使用傳播,當陣列為空時,您將不會獲得額外的條目。
var a = [1,2,3];
var b = [4];
var c = [];
console.log([...a, ...b, ...c])
所以
return {
title: section.title,
list: [
...section.list,
...storeSections[i].list.filter((field) => field.id === ownId),
],
};
uj5u.com熱心網友回復:
我發現的一種解決方案是添加:
list: [
...section.list,
storeSections[i].list.filter((field) => field.id === ownId)[0],
].filter((item) => item !== undefined),
另一種過濾方法來洗掉未定義的值
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/506753.html
標籤:javascript