How I can compare two arrays in AngularJS, and return the matching values?
Here is the first array:
[{
"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"
}]
Here is the second one:
[{
"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"
}]
I want to check if the values for alien and world are matching in these two arrays. Then I can get the color value from the second array.
Here is the code I put in the controller:
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);
}
});
});
Shall I use angular.forEach
? How can I do that? And where do I store the color value?
Like duncan said, these are both arrays of objects and not multi-dimensional arrays. Here I use angulars .forEach method to loop through both arrays then compare the object properties.
I've added a comment where you would get your matching color.
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
}
});
});
Here's a fiddle
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With