gpt4 book ai didi

javascript - 从数组对象中的数组中删除对象

转载 作者:行者123 更新时间:2023-11-30 12:24:22 26 4
gpt4 key购买 nike

http://jsfiddle.net/0444046b/12/

我有一个复杂的对象数组,每个对象都有自己的标签数组。

我也只有一个对象,它应该与标记数组中的对象之一相匹配,如果是这样,请删除该标记。

Got some help here ,但是我的示例太简单了,到目前为止,下面的这个没有运气。

基本上我有对象 tag,我需要将它从 tagsArray 内的 tags 数组中删除。

var tagsArray = [{
name: "group1",
tags: [
{
name: "1",
tag_id: "1234"
},
{
name: "2",
tag_id: "5678"
},
{
name: "3",
tag_id: "9012"
}
]
},
{
name: "group2",
tags: []
}
];

console.log(tagsArray[0]);

// Need to find this inside of tags inside of tagsArray and remove it:
var tag = {
name: "3",
tag_id: "9012"
}

var temp_array = [];
temp_array.push(tag);

var map = {};

tagsArray.forEach(function(obj, index) {
map[obj.tag_id] = index;
});

console.log(map);


temp_array.forEach(function(obj) {
if ( obj.tag_id ) {
tagsArray.splice(tagsArray[map[obj.tag_id]]);
console.log(tagsArray);
}
});

最佳答案

您可以遍历 tagsArray 中的每个项目,然后在内部 tags 属性中过滤我们匹配的元素。

var tagsArray = [{
name: "group1",
tags: [{
name: "1",
tag_id: "1234"
}, {
name: "2",
tag_id: "5678"
}, {
name: "3",
tag_id: "9012"
}]
}, {
name: "group2",
tags: []
}];

// Need to find this inside of tags inside of tagsArray and remove it:
var removeTag = {
name: "3",
tag_id: "9012"
}

var message = 'Before:<br>' + JSON.stringify(tagsArray) + '<br><br>';

tagsArray.forEach(function(element) {
element.tags = element.tags.filter(function(tag) {
return tag.name != removeTag.name && tag.tag_id != removeTag.tag_id;
})
});

message += 'After:<br>' + JSON.stringify(tagsArray);
document.body.innerHTML = message

关于javascript - 从数组对象中的数组中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29977291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com