一種更簡單的方法來重新創建此代碼的輸出,如果 sub arr0 不為空,則它會組合它并通過 key 過濾所需的輸出code。
先感謝您!
let array = [
{
id: 1,
text: 'stuff1',
arr0: [
{id:1, code: 'imacode1'},
{id:2, code: 'imacode2'},
]
},
{
id: 2,
text: 'stuff2',
arr0: [
{id:3, code: 'imacode3'},
{id:4, code: 'imacode4'},
]
},
{
id: 3,
text: 'stuff3',
arr0: []
}
]
let arr = [];
for(let i of array){
if(i.arr0.length !== 0){
arr.push(i.arr0)
}
}
arr = arr.flat()
for(let j of arr){
if(j.code === 'imacode2'){
let code = arr.filter(j=>j.code!=='imacode2')
code = code.map(({code}) => code)
console.log(code)
}
}
編輯:添加片段
uj5u.com熱心網友回復:
您可以使用Array.flatMap()和Array.filter()來獲得您想要的結果,首先我們使用 .flatMap() 創建一個陣列,包括每個 arr0 中的所有專案。
然后,我們使用 .filter() 僅包含所需的專案,使用自定義(可修改)過濾器函式,在這種情況下洗掉任何代碼為“imacode2”的專案。
let array = [ { id: 1, text: 'stuff1', arr0: [ {id:1, code: 'imacode1'}, {id:2, code: 'imacode2'}, ] }, { id: 2, text: 'stuff2', arr0: [ {id:3, code: 'imacode3'}, {id:4, code: 'imacode4'}, ] }, { id: 3, text: 'stuff3', arr0: [] } ]
// Change filter as desired..
const filterProc = ({id, code}) => code !== 'imacode2';
const result = array.flatMap(el => el.arr0 || []).filter(filterProc).map(({code}) => code);
console.log(result)
.as-console-wrapper { max-height: 100% !important; top: 0; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/346606.html
標籤:javascript 数组 json
