Удалить дубликаты объектов из массива JSON
У меня есть массив, который выглядит так:
var standardsList = [
{"Grade": "Math K", "Domain": "Counting & Cardinality"},
{"Grade": "Math K", "Domain": "Counting & Cardinality"},
{"Grade": "Math K", "Domain": "Counting & Cardinality"},
{"Grade": "Math K", "Domain": "Counting & Cardinality"},
{"Grade": "Math K", "Domain": "Geometry"},
{"Grade": "Math 1", "Domain": "Counting & Cardinality"},
{"Grade": "Math 1", "Domain": "Counting & Cardinality"},
{"Grade": "Math 1", "Domain": "Orders of Operation"},
{"Grade": "Math 2", "Domain": "Geometry"},
{"Grade": "Math 2", "Domain": "Geometry"}
];
И мне нужно удалить дубликаты, чтобы что-то вроде этого осталось:
var standardsList = [
{"Grade": "Math K", "Domain": "Counting & Cardinality"},
{"Grade": "Math K", "Domain": "Geometry"},
{"Grade": "Math 1", "Domain": "Counting & Cardinality"},
{"Grade": "Math 1", "Domain": "Orders of Operation"},
{"Grade": "Math 2", "Domain": "Geometry"}
];
Я попытался установить underscore.js и использовать ._uniq, но это, кажется, работает, только когда одинkey:value
пара появляется в объекте. Я не могу заставить его работать с несколькими ключами.
Когда я пытаюсь что-то вроде:
var uniqueStandards = _.uniq(standardsList, function(item, key, Domain){
return item.Domain;
});
Я получаю только первые три уникальных значения (по одному на класс). Но мне нужны все уникальные значения как для класса, так и для предметной области. Есть ли простой способ передать обе клавиши в функцию _.uniq?
В конечном счете мне нужен список с каждой уникальной оценкой в качестве заголовка и уникальными доменами в качестве элементов списка для передачи на страницу HTML. Возможно, я ошибаюсь, поэтому, если есть более простой способ достичь этой конечной цели, я открыт для идей.
Заранее спасибо!
Редактировать: Получил несколько хороших ответов и хотел уточнить, какова была моя конечная цель. Я пытаюсь создать серию списков в формате HTML:
<div>
<h3>Math K</h3>
<li>Counting & Cardinality</li>
<li>Geometry</li>
</div>
<div>
<h3>Math 1</h3>
<li>Counting & Cardinality</li>
<li>Orders of Operation</li>
</div>
<div>
<h3>Math 2</h3>
<li>Geometry</li>
</div>
Хотя мой оригинал состоял в том, чтобы создать массив и вставить его в<div>
элемент на странице с$("#divid").append(array)