如何从数组中删除完整的唯一值

时间:2019-03-10 17:45:08

标签: javascript jquery javascript-objects

如何删除数组中同一对象的完整记录,请帮助我,我正在使用以下功能,但它仅删除了一个值,我想删除同一对象的完整对象

var data = [{
    "QuestionOid": 1,
    "name": "hello",
    "label": "world"
}, {
   "QuestionOid": 2,
    "name": "abc",
    "label": "xyz"
}, {
   "QuestionOid": 1,
    "name": "hello",
    "label": "world"
}];

    function removeDumplicateValue(myArray) {
                    var newArray = [];

                    $.each(myArray, function (key, value) {
                        var exists = false;
                        $.each(newArray, function (k, val2) {
                            if (value.QuestionOid == val2.QuestionOid) { exists = true };
                        });
                        if (exists == false && value.QuestionOid != undefined) { newArray.push(value); }
                    });

                    return newArray;
                }

我想要这样的结果

[{
   "QuestionOid": 2,
    "name": "abc",
    "label": "xyz"
}]

1 个答案:

答案 0 :(得分:0)

使用Array#filter。对匹配QuestionOid等于1的数组进行过滤

var data = [{ "QuestionOid": 1, "name": "hello", "label": "world" }, { "QuestionOid": 2, "name": "abc", "label": "xyz" }, { "QuestionOid": 1, "name": "hello", "label": "world" }]

var res = data.filter((a, b, c) => c.map(i => i.QuestionOid).filter(i => i == a.QuestionOid).length == 1)
  
console.log(res)