如何按索引从对象数组 javascript 中的对象数组中删除对象
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();
如何从对象数组中的对象数组中按索引删除对象。
我想从对象 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();