यहाँ का उपयोग किए बिना दो सरणियों जोड़े मैंconcat विधि
function test(r){
var arr = ['d','e','f'];
r.push(arr);
/*
More Code
*/
return r;
}
var result = test(['a','b','c']);
alert(result.length);//I want this to alert 6
करने के लिए मैं क्या करने की जरूरत एक सरणी में गुजरती हैं और यह के अंत तक अन्य सारणियों देते हैं और फिर चाहते हैं क्या का एक नमूना है सरणी वापस करें। संदर्भ से गुजरने के कारण मैं array.concat(array2);
का उपयोग नहीं कर सकता। तत्वों को एक-एक करके जोड़ने के लिए लूप के लिए कुछ उपयोग किए बिना ऐसा करने का कोई तरीका है। मैंने r.push(arr.join());
की तरह कुछ करने की कोशिश की लेकिन यह भी काम नहीं किया। इसके अलावा, मुझे एरे में ऑब्जेक्ट्स रखने का विकल्प चाहिए, इसलिए वास्तव में r.push(arr.join());
बहुत अच्छी तरह से काम नहीं करता है।
'apply' के दिलचस्प उपयोग emulbreh के पास जाना चाहिए +1 – meouw
मैं देखा था पहले लागू विधि, लेकिन वास्तव में यह कभी नहीं समझा (स्वयं की जरूरत के लिए ध्यान दें आवेदन पर अध्ययन करने के लिए), लेकिन यह निश्चित रूप से जो मैं चाहता था उसे करने का एक संक्षिप्त तरीका बनाता है। हालांकि पहली विधि से दूसरी विधि कैसे भिन्न होती है? X.push.apply के बजाय Array.prototype का उपयोग करना। – qw3n
दोनों समकक्ष हैं। कॉलिंग 'x.push (y)' का अर्थ है "फंक्शन 'x.push' को स्कोप' x' और तर्क' [y] 'के साथ कॉल करें। इस मामले में 'x.push'' Array.prototype.push 'को हल करता है , इस प्रकार: 'Array.prototype.push.apply (x, [y])'। मैंने केवल दूसरे रूप का उल्लेख किया है क्योंकि यह कभी-कभी संदर्भ 'x' को संदर्भित करने के लिए बेहतर होता है। – emulbreh