来自对象的特定子对象

时间:2014-09-18 13:39:53

标签: javascript json

我正在尝试从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。

它的作用是从对象中删除所有对象,而不是仅删除一个。

我想要做的是传入一个特定的子对象并从对象中删除它。

我希望它有道理: - )

1 个答案:

答案 0 :(得分:2)

两个不同(不相同)的对象永远不会彼此相等,即使它们具有相同的属性。只需查看register属性。

var remove = selectedDomains.domains.filter(function(e){
  return e.register === domain + "." + selectedTLD;
})

remove将是一个包含与URL匹配的所有元素的数组。

但是,如果要从数组中删除元素,可能需要将条件更改为

e.register !== domain + "." + selectedTLD;