javascript - Merge many arrays in one array -


मेरे पास 3 एआरए जैसे

  a = [1,1,1]; बी = [2,2,2]; सी = [3,3,3];  

मैं एक सरणी में इन सभी सरणियों को मर्ज करना चाहता हूं जिससे कि परिणाम होना चाहिए

  d = [1,2,3,1,2 , 3,1,2,3];  

मैंने ऐसा फ़ंक्शन बनाया है जो:

  फ़ंक्शन मर्ज () {var परिणाम = []; Var maxLength = 0; (तर्कों में कुंजी) के लिए यदि (तर्क [कुंजी]। लम्बाई & gt; अधिकतम लंबाई) maxLength = तर्क [कुंजी]। लंबाई; जबकि (maxlength--) के लिए (तर्क में कुंजी) यदि (x = तर्क [कुंजी] .shift ()) परिणाम push (x); वापसी परिणाम; }  

समस्या यह है कि जब मैं फ़ंक्शन कॉल करता हूं मर्ज इस तरह

  d = मर्ज (a, b, c) ;   

यह d वेरिएबल पर सही सरणी देता है, लेकिन जब मैं a, b, c में है उसे प्रिंट करने का प्रयास करता हूं, मुझे सभी मिलते हैं उनमें से खाली एरेज़ हैं, क्योंकि मैंने shift () का उपयोग किया है।

फिर मैं इस बग को arguments के अन्य एरे और मूल्यों की नकल के द्वारा सही करता हूं उस सरणी के साथ

  फ़ंक्शन मर्ज () {var परिणाम = []; Var maxLength = 0; Var arg = JSON.parse (JSON.stringify (तर्क)); के लिए (अरजी में कुंजी) अगर (आरजी [कुंजी]। लम्बी> gt; अधिकतम लंबाई) maxLength = arg [key]। लंबाई; जबकि (maxLength--) के लिए (अरजी में कुंजी) यदि (x = arg [key] .shift ()) परिणाम push (x); वापसी परिणाम; }  

पहला सवाल: जो मुझे समझ में नहीं आ रहा था वह यह है कि क्यों मैं तर्क सरणी पर बदलाव करता हूं और ए, बी, सी

दूसरा सवाल: क्या ऐसा करने का एक आसान तरीका है?

अपने पहले प्रश्न का उत्तर देने के लिए

Array.prototype.shift () विधि एक सरणी से पहला तत्व निकाल देता है और वह तत्व देता है। यह विधि सरणी की लंबाई में परिवर्तन करती है। ()

यह फ़ंक्शन उन्हें संशोधित किए बिना n सरणी मर्ज करेगा।

  फ़ंक्शन मर्ज () {var परिणाम = [], लंबाई = [], max_len , Num_args = arguments.length; (I = 0; i & lt; num_args; i ++) के लिए {lengths.push (तर्क [i]। लंबाई); } Max_len = Math.max.apply (शून्य, लंबाई); के लिए (i = 0; i & lt; max_len; i ++) {for (जे = 0; जम्मू & lt; num_args; j ++) {if (arguments [j] [i]! = Null) {result.push (तर्क [j] [ मैं ] ); }}} वापसी परिणाम; }  

Comments

Popular posts from this blog

Member with no value in F# -

java - Joda Time Interval Not returning what I expect -

c# - Showing a SelectedItem's Property -