Javascript:检查多维数组中的对象是否具有某个属性,然后删除该对象

时间:2015-05-17 18:23:52

标签: javascript arrays multidimensional-array

我有一个多维数组,如下所示:

[
    [ 
        { name: "jeff", job: "cleaner" }, 
        { name: "kate", job: "cashier" } 
    ],
    [ 
        { name: "alice", job: "engineer" },
        { name: "sean", job: "writer" },
        { name: "ruby", job: "police officer" }
    ],
    [ 
        { name: "sarah", job: "writer" }, 
        { name: "john", job: "cleaner" } 
    ]
]

我正在寻找一种快速简洁的方法来查找此结构中的一个对象,其中一个属性与某个值匹配,然后完全删除该对象。

例如,假设我想找到job的属性为writer的所有对象,并从结构中删除这些对象。

请记住,我会保持此阵列的当前结构完整无缺,只删除相关对象。

1 个答案:

答案 0 :(得分:1)

我使用的是hasOwnProperty功能,我不会从this question获得赞誉。

你可以这样做,使用该功能:

arr.forEach(function (subArr, index, myArr) {
    myArr[index] = subArr.filter(function (obj) {
        if (hasOwnProperty(obj, "job") && obj["job"] === "writer") {
            return false;
        }
        return true;
    });
});

Fiddle