javascript - जावास्क्रिप्ट में किसी सरणी की शुरुआत में मैं नए सरणी तत्व कैसे जोड़ सकता हूं?




arrays (4)

मुझे सरणी की शुरुआत में तत्व जोड़ने या प्रीपेड करने की आवश्यकता है।

उदाहरण के लिए, यदि मेरी सरणी नीचे की तरह दिखती है:

[23, 45, 12, 67]

और मेरे AJAX कॉल से प्रतिक्रिया 34 , मैं चाहता हूं कि अद्यतन सरणी निम्न की तरह हो:

[34, 23, 45, 12, 67]

वर्तमान में मैं इसे इस तरह करने की योजना बना रहा हूं:

var newArray = [];
newArray.push(response);

for (var i = 0; i < theArray.length; i++) {
    newArray.push(theArray[i]);
}

theArray = newArray;
delete newArray;

क्या ऐसा करने का कोई बेहतर तरीका है? क्या जावास्क्रिप्ट में कोई अंतर्निहित कार्यक्षमता है जो यह करता है?

मेरी विधि की जटिलता O(n) और बेहतर कार्यान्वयन देखना वास्तव में दिलचस्प होगा।


ES6 के साथ, फैल ऑपरेटर का उपयोग करें ... :

डेमो

var arr = [23, 45, 12, 67];
arr = [34, ...arr]; // RESULT : [34,23, 45, 12, 67]

console.log(arr)


आपके पास एक सरणी है: var arr = [23, 45, 12, 67];

शुरुआत में कोई आइटम जोड़ने के लिए, आप splice का उपयोग करना चाहते हैं:

var arr = [23, 45, 12, 67];
arr.splice(0, 0, 34)
console.log(arr);


concat माध्यम से ऐसा करने का एक और तरीका

var arr = [1, 2, 3, 4, 5, 6, 7];
console.log([0].concat(arr));

unshift और unshift बीच का अंतर यह है कि unshift एक नई सरणी देता है। उनके बीच प्रदर्शन here पाया जा सकता here

function fn_unshift() {
  arr.unshift(0);
  return arr;
}

function fn_concat_init() {
  return [0].concat(arr)
}

परीक्षा परिणाम यहां दिया गया है


त्वरित चीटशीट:

शब्द शिफ्ट / अनशिफ्ट और पुश / पॉप थोड़ा उलझन में हो सकता है, कम से कम उन लोगों के लिए जो सी में प्रोग्रामिंग से परिचित नहीं हो सकते हैं।

यदि आप लिंगो से परिचित नहीं हैं, तो यहां वैकल्पिक शब्दों का त्वरित अनुवाद है, जो याद रखना आसान हो सकता है:

* array_unshift()  -  (aka Prepend ;; InsertBefore ;; InsertAtBegin )     
* array_shift()    -  (aka UnPrepend ;; RemoveBefore  ;; RemoveFromBegin )

* array_push()     -  (aka Append ;; InsertAfter   ;; InsertAtEnd )     
* array_pop()      -  (aka UnAppend ;; RemoveAfter   ;; RemoveFromEnd ) 




arrays