У меня есть массивы, такие как следующие:Получить массив уникальных элементов из массивов объектов
files = [
{name: 'Lorem', other: true},
{name: 'Foo', other: true},
{name: 'Bar', other: true}
];
files = [
{name: 'Lorem', other: true},
{name: 'Xxxxx', other: true}
];
files = [
{name: 'Lorem', other: true},
{name: 'Foo', other: true},
{name: 'Epic', other: true},
{name: 'Xxxxx', other: true}
];
Я пытаюсь получить объединенный массив с уникальными элементами подчеркиванием, но он не работает. Вот мой код:
function getAllFiles(alldocs) {
var all = [];
_.each(alldocs, function(element) {
all = _.union(all, element.files);
});
return all;
}
Но я получаю массив с повторяющимися элементами.
см https://github.com/jashkenas/underscore/issues/2311 –
Вы могли бы, вероятно, использовать http://underscorejs.org/#uniq также с 'union' –
Растворы приведенные ниже, проверяют только свойство 'name', но, возможно, вы хотите различить свойства «name» и «other». Прокрутите массив и проверьте оба. Если это единственное значение, которое вы хотите проверить, вы можете сделать это с помощью карты и уменьшить однострочный. – MartijnK