2015-02-20 4 views
0

Я пытаюсь сделать сопоставление в своем приложении.Как сравнить массивы в моем случае?

У меня есть что-то вроде

$scope.newProducts = ['123','456','789'] 

$scope.products = [{'id':'123'}, {'id':'121'}, {'id':'678'}, {'id':'789'}]; 

Я хочу, чтобы быть в состоянии идентифицировать new product в моем products массиве.

У меня есть что-то вроде

$scope.newProducts.forEach(function(id){ 
    //not sure what is the best way to find new product id in $scope.products 
}) 

мне нужно определить new product id в products массиве. Интересно, как лучше всего это сделать. Спасибо за помощь!

+2

Эта структура '$ scope.products = { 'идентификатор': '123', 'идентификатор': '121', 'идентификатор': '678', 'идентификатор': '789 '}, 'не имеет никакого смысла. Вы определяете объект с повторяющимися свойствами. Для этого объекта будет только одно значение для объекта. Вы имеете в виду, что здесь где-то есть массив идентификаторов? – jfriend00

+0

@ jfriend00 ты был прав. см. обновленные вопросы. – BonJon

ответ

1

На новых товарах вы можете установить флаг isNew.

$scope.products.forEach(function (product) { 
    if ($scope.newProducts.indexOf(product.id) > -1) { 
     product.isNew = true; 
    } 
}); 
1

Попробуйте использовать библиотеку как underscore, что делает этот тип операций весьма проста.

_.each(products, function(item){ 
    if (_.contains(newProducts, item.id)){ 
     console.log(item); 
    } 
}); 

Plunker

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