2012-01-20 5 views
6

मैं दो सरणियों है:मैं दो सरणी की सामग्री के लिए हर संयोजन को कैसे संभव बना सकता हूं?

var array1=["A","B","C"]; 

var array2=["1","2","3"]; 

मैं एक सरणी सेट कैसे ऊपर के प्रत्येक संयोजन के शामिल करने के लिए कर सकते हैं, ताकि:

var combos=["A1","A2","A3","B1","B2","B3","C1","C2","C3"]; 

उत्तर

4

एक लूप यह फॉर्म

combos = [] //or combos = new Array(2); 

for(var i = 0; i < array1.length; i++) 
{ 
    for(var j = 0; j < array2.length; j++) 
    { 
     //you would access the element of the array as array1[i] and array2[j] 
     //create and array with as many elements as the number of arrays you are to combine 
     //add them in 
     //you could have as many dimensions as you need 
     combos.push(array1[i] + array2[j]) 
    } 
} 
6

आप के लिए समर्थन के साथ हाल ही में एक वेब ब्राउज़र का उपयोग कर रहे मानते हुए Array.forEach:

var combos = []; 
array1.forEach(function(a1){ 
    array2.forEach(function(a2){ 
    combos.push(a1 + a2); 
    }); 
}); 

आप forEach की जरूरत नहीं है, तो इसे बिना इस पुनर्लेखन के लिए एक आसान पर्याप्त व्यायाम है। जैसा कि दूसरों ने पहले साबित कर दिया है, बिना कुछ प्रदर्शन करने के फायदे भी हैं ... (हालांकि मुझे लगता है कि अब से लंबे समय तक नहीं, सामान्य जावास्क्रिप्ट रनटाइम अन्यथा ऐसा करने के लिए किसी भी मौजूदा फायदे को अनुकूलित कर देगा।)

+0

लूप के साथ प्रत्येक के लिए भी प्रतिस्थापित कर सकता है। – Prescott

+0

कोई ब्राउज़र नहीं ... मैं इसे मूल आईफोन ऐप में बदलने के लिए फोनगैप का उपयोग करने जा रहा हूं। क्या वह अभी भी काम करेगा? –

+0

@Dingredient - वास्तव में ब्राउज़र पर निर्भर नहीं है, लेकिन समर्थित जावास्क्रिप्ट संस्करण। यदि 'EEach' काम नहीं करता है, तो इसके बजाय rubixibuc का उत्तर उपयोग करें। – ziesemer

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