У меня есть массив объектов, которые я хотел бы обрезать на основе определенной пары key:value
. Я хочу создать массив, который включает только один объект для этой конкретной пары key:value
. Не обязательно, какой объект дубликатов будет скопирован в новый массив.JavaScript: удалить дубликаты объектов, имеющих одно и то же значение свойства
Например, я хочу, чтобы урезать на основе price
собственности arrayWithDuplicates
, создавая новый массив, который включает в себя только один из каждого значения:
var arrayWithDuplicates = [
{"color":"red",
"size": "small",
"custom": {
"inStock": true,
"price": 10
}
},
{"color":"green",
"size": "small",
"custom": {
"inStock": true,
"price": 30
}
},
{"color":"blue",
"size": "medium",
"custom": {
"inStock": true,
"price": 30
}
},
{"color":"red",
"size": "large",
"custom": {
"inStock": true,
"price": 20
}
}
];
стал бы:
var trimmedArray = [
{"color":"red",
"size": "small",
"custom": {
"inStock": true,
"price": 10
}
},
{"color":"green",
"size": "small",
"custom": {
"inStock": true,
"price": 30
}
},
{"color":"red",
"size": "large",
"custom": {
"inStock": true,
"price": 20
}
}
];
Есть JavaScript или Угловая функция, которая будет проходить через это и делать это?
EDIT: свойство фильтровать вложенно в другое свойство.
возможно дубликат [Удалить дубликаты из массива объектов в JavaScript] (http://stackoverflow.com/questions/2218999/remove-duplicates-from-an-array-of-objects-in-javascript) –
вы ищете что-то вроде функции _.map или _.pluck в подчеркивании е? http://underscorejs.org/#pluck – ncubica