【发布时间】:2019-10-10 21:00:25
【问题描述】:
问题
我有一个 Javascript 数组,它可以包含重复项(只有 2 个),键值 color 具有相同的值。
var array = [
{
"id": "1",
"color": "red",
"animal": null
},
{
"id": "2",
"color": "red",
"animal": "cat"
},
{
"id": "3",
"color": "green",
"animal": "dog"
}
];
我想删除键 color 上的重复项,只保留键为 animal 而不是 null 的唯一对象。
var uniqueArray = [
{
"id": "2",
"color": "red",
"animal": "cat"
},
{
"id": "3",
"color": "green",
"animal": "dog"
}
];
我尝试了什么
var obj = {};
for (var i = 0; i < array.length; i++) {
obj[array[i]['name']] = array[i];
}
var uniqueArray = new Array();
for (var key in obj) {
uniqueArray.push(obj[key]);
}
结果如下:
var uniqueArray = [
{
"id": "1",
"color": "red",
"animal": "null"
},
{
"id": "3",
"color": "green",
"animal": "dog"
}
];
我不知道如何选择要保留的对象。
注意:我不能使用 ES6
【问题讨论】:
-
你的问题也没有很好的定义。如果有一对重复的颜色并且这两个都有一个非空动物怎么办?另外,如果某个颜色只有一个项目,但动物为空,最终数组中会包含还是排除呢?
-
到目前为止你做了什么?
标签: javascript arrays object duplicates unique