2013-12-03 4 views
0

массива 1: [ user:{id:1,votes:9}, user:{id:2,votes:3} ]Сравните 2 Массивы объектов, JavaScript

Массив 2: [ user:{id:1,votes:10}, user:{id:2,votes:5}, user:{id:3,votes:1} ]

Использование Node.js, что является наиболее эффективным способом изолировать уникальный пользователя на основе идентификатора на его собственную?

Использование петель Loop и ForEach, я не могу понять это. Подчеркивание - это вариант, но я до сих пор не могу понять процесс функции. Большое спасибо.

(я не имею никакого контроля над тем, как данные поступают ко мне, модифицируя массив или объект не вариант, к сожалению)

+2

Оба этих заявлений/массивов в JavaScript недопустимы. – undefined

+1

Что такое "эффективный"? Меньшая вычислительная мощность? Самое быстрое исполнение? Меньший код? Самый простой для mainatain? – RobG

+0

@ RobG Меньший код и проще всего поддерживать. Я принял ответ ниже. Я забыл рассмотреть .map. @ undefined Это данные, переданные мне API, который я использую. Я создаю свои собственные пользовательские объекты и использую данные, которые я передаю для определенных событий, чтобы их поддерживать. –

ответ

0

Попробуйте это:

var ids = array1.map(function(u){ return u.id }); 

var unique = array2.filter(function(u) { 
    return ids.indexOf(u.id) < 0; 
}); 
+0

Работал отлично, спасибо. Я продолжаю забывать. Карта существует. –

+0

Рад, что это помогло. Однако это может быть не самая «эффективная» производительность. – elclanrs

Смежные вопросы