Я хочу иметь возможность использовать методы массива или какую-либо другую форму обработки javascript без какой-либо внешней javascript библиотеки для итерации по многомерному массиву и удалите все повторяющиеся значения. Вот пример ниже:
var places = [{
"category": "other",
"title": "harry University",
"value": 4788,
"id": "1"
},
{
"category": "traveling",
"title": "tommy University",
"value": 5460,
"id": "2"
},
{
"category": "education",
"title": "jerry University",
"value": 7853456,
"id": "3"
},
{
"category": "business",
"title": "Charlie University",
"value": 6779589,
"id": "4"
},
{
"category": "business",
"title": "NYU",
"value": 0117824,
"id": "5"
}
];
Я пытался использовать array.filter
для удаления дублирующихся значений category
, но выбранный мной подход не работает.
Вот мой код
places = places.map(JSON.stringify).reverse()
.filter(function(item, index, places) {
return places.indexOf(item, index + 1) === -1;
})
.reverse().map(JSON.parse)
console.log(places)
Выше не работает, потому что он работает на весь массив, поэтому данные не изменяются.
Когда я использую библиотеку, такую как подчеркивание. js у них есть метод, который работает
let newPlaces = [];
_.each(_.uniq(_.pluck(places, "category")), function(category) {
newPlaces.push(_.findWhere(places, {
category: category
}));
});
console.log(newPlaces);
Но я хочу использовать .filter
или какой-нибудь другой ванильный javascript метод.