我需要修改嵌套数组。在此示例中,我想从ID为content 2
ZFrNsQKSY6ywSzYps
var array = [
{ _id: "QKSY6ywSzYpsZFrNs", target: ["content 1"]}
{ _id: "ZFrNsQKSY6ywSzYps", target: ["content 1", "content 2"]}
{ _id: "SzYpsZFrNQKSY6yws", target: ["content 1"]}
]
我尝试使用find()
但是我没有更新数组。所以这似乎不是正确的方法。
答案 0 :(得分:0)
var newarray = []
for(var i1 = 0; i1< array.length;i1++){
var subarray = []
for(var i2 = 0; i1<array[0].target.length;i++){
if(array[0].target[0]!="content 2"){ // or desired removed content
subarray.push(array[0].target[0])
}
}
newarray.push({"_id":array[0].id,"target":subarray})
}
之后只需访问newarray
答案 1 :(得分:0)
首先:数组中的元素应以逗号分隔。
第二:是否有更新目标数组的逻辑?如果是这样,您可以迭代元素并根据该逻辑修改其目标。
除此之外你总能做到这一点
array[1].target = ["content1"]
答案 2 :(得分:0)
尝试tihs方法:
const array = [
{ _id: "QKSY6ywSzYpsZFrNs", target: ["content 1"]},
{ _id: "ZFrNsQKSY6ywSzYps", target: ["content 1", "content 2"]},
{ _id: "SzYpsZFrNQKSY6yws", target: ["content 1"]}
]
console.log(array);
array.forEach(
item =>
// filter out the unwanted content
item.target = item.target.filter(
content => content !== "content 2"
)
)
console.log(array);
答案 3 :(得分:0)
您可以使用find()
方法获取对象,然后使用indexOf()
查找要删除的数组中的元素,如果找到splice()
方法则将其删除。
var array = [
{ _id: "QKSY6ywSzYpsZFrNs", target: ["content 1"]},
{ _id: "ZFrNsQKSY6ywSzYps", target: ["content 1", "content 2"]},
{ _id: "SzYpsZFrNQKSY6yws", target: ["content 1"]}
]
const obj = array.find(({_id}) => _id == 'ZFrNsQKSY6ywSzYps');
if(obj) {
const i = obj.target.indexOf('content 2');
if(i != -1) obj.target.splice(i, 1)
}
console.log(array)