angularjs сравнить два массива
как я могу сравнить два массива в AngularJS и вернуть соответствующие значения?
вот первый массив:
[{
"id":2,
"student_name":"LiSa",
"alien":"A",
"world":"Sun",
"justification":"i like sent this one",
"submit_time":null
},{
"id":1,
"student_name":"Liz",
"alien":"B",
"world":"Earth",
"justification":null,
"submit_time":"2014-09-25T08:37:34.526-05:00"
}]
второй вопрос:
[{
"id":1,
"alien":"A",
"world":"Sun",
"color":"red"
},{
"id":2,
"alien":"A",
"world":"Mercury",
"color":"red"
},{
"id":3,
"alien":"B",
"world":"Earth",
"color":"red"
},{
"id":4,
"alien":"B",
"world":"Moon",
"color":"red"
}]
Я хочу проверить, если значения чужой и мир совпадают в этих двух массивах. Тогда я могу получить цвета значение из второго массива.
вот код, который я вставил в контроллер:
angular.forEach(arr1, function(value1, key1) {
angular.forEach(arr2, function(value2, key2){
if(value1.alien === value2.alien && value1.world === value2.world){
console.log(value2.color);
}
});
});
должен ли я использовать angular.forEach
? Как я могу это сделать? И где я храню значение цвета?
2 ответов
Как сказал Дункан, это оба массива объектов, а не многомерные массивы. Здесь я использую angulars .метод forEach для цикла через оба массива затем сравните свойства объекта.
Я добавил комментарий, где вы получите соответствующие цвета.
angular.forEach(arr1, function(value1, key1) {
angular.forEach(arr2, function(value2, key2) {
if (value1.alien === value2.alien && value1.world === value2.world) {
// here is where you grab the value2.color
}
});
});
здесь скрипка
Если вы используете ЕС6 затем:
array1.forEach((elem1, index) => {elem1;
array2.forEach((elem2, index) => {elem2;
if(elem1.someProp=== elem2.someProp)
{
//--If elem1 equal elem2
}
});
});