Я пытаюсь найти способ преобразовать список субъектов в объекте JS, чтобы я мог создать фильтр без повторяющихся значений.
Пока мне удалось отобразить и отфильтровать уникальные значения в два отдельных массива. Код, который мне удалось написать, является базовым (и не решает проблему):
var topic = subject
.map(function (value) { return value.topic })
.filter(function (elem, index, self) {
return index == self.indexOf(elem);
});
Итак, форма моих предметов такая:
var subjects = [ {
"topic" : "Social Sciences",
"subtopic" : "Developmental Issues"
}, {
"topic" : "Social Sciences",
"subtopic" : "General"
}, {
"topic" : "Social Sciences",
"subtopic" : "General"
}, {
"topic" : "Social Sciences",
"subtopic" : "General and Others"
},{
"topic" : "Social Sciences",
"subtopic" : "Arts"
},{
"topic" : "Social Sciences",
"subtopic" : "History"
}, {
"topic" : "Arts and Humanities",
"subtopic" : "History"
}, {
"topic" : "Arts and Humanities",
"subtopic" : "Literature"
} ]
И мне нужно создать фильтр, который выглядит следующим образом:
filter = [{
name: "Social Sciences",
{
subtopic: "Developmental Issues",
subtopic: "General",
subtopic: "General and Others",
subtopic: "Arts",
subtopic: "History"
}
}, {
name: "Arts and Humanities",
{
subtopic: "History",
subtopic: "Literature"
}
}