[英]How to delete object from array of objects in array of objects javascript by index
如何通過索引從對象數組中的對象數組中刪除對象。
我想從數組中刪除第一個對象,對象 ID 為“A1”
let data =
[
{ id: 'A1',
value: [ { uri: 'B45AA03A05B7.jpg', type: 'image/jpeg' },
{ uri: '30A42FBC1146.jpg', type: 'image/jpeg' } ]
},
{ id: 'A2',
value: [ { uri: 'G455HFG2FF56.jpg', type: 'image/jpeg' },
{ uri: 'TY6DFG7RTGF.jpg', type: 'image/jpeg' } ]
}
]
所需的輸出
let data =
[
{ id: 'A1',
value: [ { uri: '30A42FBC1146.jpg', type: 'image/jpeg' } ]
},
{ id: 'A2',
value: [ { uri: 'G455HFG2FF56.jpg', type: 'image/jpeg' },
{ uri: 'TY6DFG7RTGF.jpg', type: 'image/jpeg' } ]
}
]
我試過這個
const array1 = data.filter((item) => item.id == deleteId)
if (delIndex > -1) {
array1[0].value.splice(delIndex, 1);
}
您可以找到該對象並刪除value
的第一個對象。
let data = [{ id: 'A1', value: [{ uri: 'B45AA03A05B7.jpg', type: 'image/jpeg' }, { uri: '30A42FBC1146.jpg', type: 'image/jpeg' }] }, { id: 'A2', value: [{ uri: 'G455HFG2FF56.jpg', type: 'image/jpeg' }, { uri: 'TY6DFG7RTGF.jpg', type: 'image/jpeg' }] }], deleteId = 'A1', object = data.find(({ id }) => id == deleteId); if (object) object.value.splice(0, 1); console.log(data);
你可以嘗試這樣的事情:
data.reduce((prev,curr) => {
if (curr.id === "A1") {
curr.value.shift()
}
return [...prev, curr]
}, [])
試試這個,它有效!
// ?. this is optional chaining for javascript operator
data.find(item => item.id === 'A1')?.value.shift();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.