我正在尝试从JavaScript中的对象中删除特定的子对象。
我的对象可能如下所示:
{
"domains": [
{
"transfer": "stackoverflow.dk"
},
{
"register": "stackoverflow.no"
},
{
"register": "stackoverflow.name"
}
]
}
我想要做的是在像这样的对象中使用过滤器方法:
var remove = selectedDomains.domains.filter(function(e){
return e === {"register": domain + "." + selectedTLD};
})
该函数中的域变量在此示例中为“stackoverflow”,selectedTLD为dk,no或name。
它的作用是从对象中删除所有对象,而不是仅删除一个。
我想要做的是传入一个特定的子对象并从对象中删除它。
我希望它有道理: - )
答案 0 :(得分:2)
两个不同(不相同)的对象永远不会彼此相等,即使它们具有相同的属性。只需查看register
属性。
var remove = selectedDomains.domains.filter(function(e){
return e.register === domain + "." + selectedTLD;
})
remove
将是一个包含与URL匹配的所有元素的数组。
但是,如果要从数组中删除元素,可能需要将条件更改为
e.register !== domain + "." + selectedTLD;