2015-03-18 9 views
5

मैं कोणीयजेएस में दो सरणी की तुलना कैसे कर सकता हूं, और मिलान मूल्यों को वापस कर सकता हूं?angularjs दो arrays की तुलना

[{ 
    "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 का उपयोग करें? मैं उसे कैसे कर सकता हूँ? और मैं रंग मूल्य कहां स्टोर करूं?

+0

इन बहुआयामी सरणियों (जो सरणियों की एक सरणी है), लेकिन बस वस्तुओं की सरणियों नहीं हैं। आपको अपने प्रश्न को अधिक विस्तार से समझाने की कोशिश करनी चाहिए, यह स्पष्ट नहीं है कि आप तुलना करने/परीक्षण करने की कोशिश कर रहे हैं। – duncanhall

+0

टिप्पणियों के लिए धन्यवाद, @ डंकनहॉल मैं रंग मूल्य प्राप्त करने की कोशिश कर रहा हूं जब दोनों विदेशी और दुनिया सरणी 1 और सरणी 2 के बराबर हैं। मैंने सवाल संशोधित किया, क्या यह समझ में आता है? – Lisa

उत्तर

10

डंकन की तरह कहा, ये ऑब्जेक्ट्स के दोनों सरणी हैं और बहु-आयामी सरणी नहीं हैं। यहां मैं कोणीय का उपयोग करता हूं। दोनों एरे के माध्यम से लूप करने के लिए प्रत्येक विधि के लिए ऑब्जेक्ट गुणों की तुलना करें।

मैंने एक टिप्पणी जोड़ा है जहां आपको अपना मिलान रंग मिलेगा।

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 
     } 
    }); 
}); 

यहाँ एक fiddle

+0

त्वरित उत्तर के लिए धन्यवाद, लेकिन किसी कारण से, यह काम नहीं किया। – Lisa

+0

समझ गया, मेरे कोड में एक अतिरिक्त ")" है। अब यह काम करता है, धन्यवाद! – Lisa

संबंधित मुद्दे