किसी सरणी में कुछ कैसे जोड़ा जाए?


2893

मैं जावास्क्रिप्ट में किसी ऑब्जेक्ट (जैसे कि एक स्ट्रिंग या संख्या) को एक सरणी में कैसे जोड़ सकता हूं?

जवाबों:


4384

Array.prototype.pushकिसी सरणी में मानों को जोड़ने के लिए विधि का उपयोग करें :

// initialize array
var arr = [
  "Hi",
  "Hello",
  "Bonjour"
];

// append new value to the array
arr.push("Hola");

console.log(arr);


आप push()किसी एक कॉल में एक से अधिक मानों को जोड़ने के लिए फ़ंक्शन का उपयोग कर सकते हैं :

// initialize array
var arr = ["Hi", "Hello", "Bonjour", "Hola"];

// append multiple values to the array
arr.push("Salut", "Hey");

// display all values
for (var i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}


अपडेट करें

यदि आप एक सरणी के आइटम को दूसरे सरणी में जोड़ना चाहते हैं, तो आप उपयोग कर सकते हैं firstArray.concat(secondArray):

var arr = [
  "apple",
  "banana",
  "cherry"
];

arr = arr.concat([
  "dragonfruit",
  "elderberry",
  "fig"
]);

console.log(arr);

अपडेट करें

इस उत्तर के अतिरिक्त यदि आप किसी ऐसे मूल्य की शुरुआत के लिए किसी भी मूल्य को जोड़ना चाहते हैं जिसका मतलब पहले सूचकांक से है तो आप Array.prototype.unshiftइस उद्देश्य के लिए उपयोग कर सकते हैं ।

var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);

यह भी एक ही बार में कई मानों को जोड़ने का समर्थन करता है push


129
नोट .push का रिटर्न मान सरणी (या एक नया, जैसे .concat) नहीं है, लेकिन सरणी की नई लंबाई का प्रतिनिधित्व करने वाला पूर्णांक है।
जे

8
@ आरएसटी: forसभी का उपयोग न करें (उपयोग करें .forEach)।
रॉबर्ट सिएमर

34
मैं कहूंगा कि मूल कोड अभी ठीक है। lengthसंपत्ति तक पहुंच का अनुकूलन करने के लिए किसी की आवश्यकता नहीं है । दुभाषिया अपने आप में एक अद्भुत काम करता है और इससे द रियल वर्ल्ड में कोई फर्क नहीं पड़ेगा कि आप इसे दूर करते हैं या नहीं। यदि आपका सरणी इतना विशाल हो जाता है कि .lengthवास्तव में अनुकूलन करने में मदद मिलेगी, तो संभवतः एक सरणी अब सही डेटा संरचना नहीं है। उपयोग करने forEachसे इसके फायदे हैं, लेकिन यह बहुत ही संदिग्ध है कि प्रदर्शन में वृद्धि उनमें से एक होगी, क्योंकि प्रत्येक पुनरावृत्ति के लिए फ़ंक्शन कॉल लागत खर्च करता है और कुछ भी नहीं बचाता है।
Stijn de Witt

29
@RobertSiemer lengthकिसी सरणी की संपत्ति हर बार जब आप उसे कॉल करते हैं, तो उसकी गणना नहीं की जाती है, यह arrayऑब्जेक्ट में संग्रहीत एक चर है , जो केवल तब बदलता है जब आप सरणी को बदलते हैं। तो वास्तव arr.lengthमें forहालत में कोई प्रदर्शन लागत शामिल नहीं है ।
mikeyq6

7
@Mojimi एक शुरुआत के रूप में इस तरह के एक के रूप में किनारे के मामलों में प्रदर्शन के सवालों के बारे में किसी भी सलाह की अनदेखी। अधिक अभिव्यंजक सिंटैक्स का उपयोग करें। समय के साथ जावास्क्रिप्ट रनटाइम में अधिक से अधिक अनुकूलन जुड़ते हैं - वे forEachकॉलबैक फ़ंक्शंस को इनलाइन करेंगे (उनमें से कुछ शायद पहले से ही ऐसा करते हैं) और उत्पन्न मशीन कोड में कोई अंतर नहीं होगा, अगर फ़ंक्शन को अक्सर व्याख्या के बजाय संकलित करने के लिए पर्याप्त कहा जाता है रनटाइम। समान सलाह किसी भी भाषा के लिए है जो वास्तव में असेंबलर नहीं है।
मूर्रे

1040

यदि आप केवल एकल चर को जोड़ रहे हैं, तो push()ठीक काम करता है। यदि आपको किसी अन्य सरणी को जोड़ने की आवश्यकता है, तो उपयोग करें concat():

var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];

var ar3 = ar1.concat(ar2);

alert(ar1);
alert(ar2);
alert(ar3);

उदाहरण के लिए ar1और ar2जब तक पुन: असाइन नहीं किया जाता है, तब तक यह प्रभावित नहीं होता है :

var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];

ar1 = ar1.concat(ar2);
alert(ar1);

बहुत अच्छी जानकारी यहाँ


163
बस सुनिश्चित करें कि लोग var ar3 = ar1.concat (ar2) को पकड़ते हैं; अंश। ar1.concat (ar2) मानों को ar1 में नहीं बचाता है। आपको इसे ar3 या वापस ar1 पर असाइन करके पकड़ना होगा, जैसे: ar1 = ar1.concat (ar2);
vbullinger

31
मैं कहूंगा कि यह वास्तव में गलत उत्तर है। सवाल था How do I append to an array in JavaScript?, लेकिन concatवास्तव में एक नई सरणी बनाता है । यह एक महत्वपूर्ण अंतर है! इसके बजाय मैं कहूंगा कि ओमनीमाइक द्वारा नीचे दिया गया उत्तर वास्तव में सबसे अच्छा है: एक नए सरणी को बनाए बिना किसी मौजूदा सरणी के लिए संपूर्ण सरणी को पुश करने के लिए Push.apply का उपयोग करें ।
स्टिजन डे विट

@StijndeWitt आप अभी भी एक नया एरे बनाये बिना अपीयर कर सकते हैं, जैसा कि पिछली टिप्पणी में कहा गया ar1 = ar1.concat(ar2);हैar1
cameronjonesweb

2
@cameronjonesweb वास्तव में, यह जो करता है वह उसी सामग्री के साथ एक नया सरणी बनाता है ar1, जैसा कि जोड़ें, ar2और फिर नया सरणी वापस करें। ar1 = ...कोड के उस भाग से केवल असाइनमेंट भाग ( ) को छोड़ दें और आप देखेंगे कि मूल ar1 वास्तव में नहीं बदला है। यदि आप प्रतिलिपि बनाने से बचना चाहते हैं, तो आपको आवश्यकता होगी push। मुझ पर विश्वास न करें, डॉक्स पर विश्वास करें : "कॉन्कैट () विधि एक नया सरणी लौटाती है" डॉक्स के लिए पहला वाक्य concat
स्टिजेन डे विट

@StijndeWitt तुम सही हो। हालाँकि, इसे देखने का एक अलग तरीका है, लेकिन .push केवल सिंगल वेरिएबल्स / ऑब्जेक्ट्स को जोड़ने में ही अच्छा काम करता है, लेकिन जब यह Arrays को अपग्रेड करने की बात आती है, तो यह गड़बड़ कर देगा ar2.pushपरिदृश्य में परिणाम होगा = [ar1, [ar2]]। .concat उस समस्या को हल करता है, लेकिन गति और एक नए सरणी के त्याग के साथ। .pushएरे एपेंड में ठीक से उपयोग करने के लिए , पहले निहित तत्व को बाहर लूप करें और प्रत्येक को धक्का दें। ar2.forEach(each => { ar1.push(each); });
एडी

407

कुछ त्वरित बेंचमार्किंग (प्रत्येक परीक्षण = 500k संलग्न तत्व और परिणाम कई रन के औसत हैं) निम्नलिखित दिखाया गया है:

फ़ायरफ़ॉक्स 3.6 (मैक):

  • छोटे सरणियाँ: arr[arr.length] = bअधिक तेज़ (300ms बनाम 800ms)
  • बड़ी सरणियाँ: arr.push(b)तेजी से (500ms बनाम 900ms)

सफारी 5.0 (मैक):

  • छोटे सरणियाँ: arr[arr.length] = bतेज़ (90ms बनाम 115ms)
  • बड़ी सरणियाँ: arr[arr.length] = bतेजी से (160ms बनाम 185ms)

Google Chrome 6.0 (Mac):

  • छोटे सरणियाँ: कोई महत्वपूर्ण अंतर नहीं है (और क्रोम फास्ट है! केवल ~ 38ms !!)
  • बड़े सरणियाँ: कोई महत्वपूर्ण अंतर (160ms)

मुझे arr.push()सिंटैक्स बेहतर लगता है, लेकिन मुझे लगता है कि मैं arr[arr.length]संस्करण के साथ बेहतर होगा , कम से कम कच्ची गति में। मैं एक IE के परिणामों को देखने के लिए हालांकि प्यार करता हूँ।


मेरी बेंचमार्किंग लूप्स:

function arrpush_small() {
    var arr1 = [];
    for (a = 0; a < 100; a++)
    {
        arr1 = [];
        for (i = 0; i < 5000; i++)
        {
            arr1.push('elem' + i);
        }
    }
}

function arrlen_small() {
    var arr2 = [];
    for (b = 0; b < 100; b++)
    {
        arr2 = [];
        for (j = 0; j < 5000; j++)
        {
            arr2[arr2.length] = 'elem' + j;
        }
    }
}


function arrpush_large() {
    var arr1 = [];
    for (i = 0; i < 500000; i++)
    {
        arr1.push('elem' + i);
    }
}

function arrlen_large() {
    var arr2 = [];
    for (j = 0; j < 500000; j++)
    {
        arr2[arr2.length] = 'elem' + j;
    }
}

9
सवाल यह है कि .length एक संग्रहीत मूल्य है या एक्सेस किए जाने पर गणना की जाती है, क्योंकि यदि बाद वाला सच है तो यह हो सकता है कि एक साधारण चर (जैसे j) के रूप में सूचकांक मान का उपयोग करना और भी तेज हो सकता है
yoel halb

4
एक ही परीक्षा में कॉनकट () देखना पसंद करेंगे!
जस्टिन

2
मुझे आश्चर्य है कि पिछले चार वर्षों में यह कितना बदल गया है। (jsperf अभी काम करेगा।)
पॉल ड्रेपर

8
इस प्रकार का बेंचमार्किंग दिलचस्प है, लेकिन विडंबना यह है कि ऐप्स को तेज़ बनाने में बहुत मददगार नहीं है। रेंडरिंग लूप किसी भी चक्र के दौरान कहीं अधिक महंगा है। इसके अलावा जेएस भाषा के इन इंटर्न को लगातार ब्राउज़र डेवलपर्स द्वारा अनुकूलित किया जा रहा है। मेरे पतन का कारण है, इस उत्तर की रोचकता नहीं। यदि आप तेजी से ऐप्स चाहते हैं, तो पहले बेंचमार्क करें और देखें कि क्या बदलना है - 100 में से 99 बार यह इस परीक्षा के शो जैसा कोई मुद्दा नहीं होगा। अक्सर इसके खराब डेवलपर जेएस / सीएसएस - ब्राउज़र इंटर्न नहीं जो इसे धीमा कर रहे हैं।
सबक्यूसर

7
मैं जब भी संभव हो बिल्डरों से चिपके रहने में लेसक्यूसर से सहमत हूं। ऐसा नहीं है कि माइक्रो-ऑप्टिमाइज़ेशन अपने आप में खराब है, लेकिन वह सही है कि ब्राउज़र हमेशा अपने इंजन की गति में सुधार कर रहे हैं। बिंदु में मामला: इस लेखन के रूप में, प्रति-ब्राउज़र प्रदर्शन ऊपर सूचीबद्ध सभी तकनीकों के लिए लगभग समान है। मतलब इतने छोटे लाभ के लिए कुछ साल पहले बहुत उपद्रव, जब अब कोई लाभ नहीं है।
बीजोर

297

मुझे लगता है कि यह ध्यान देने योग्य है कि पुश को कई तर्कों के साथ बुलाया जा सकता है, जिसे क्रम में सरणी में जोड़ा जाएगा। उदाहरण के लिए:

var arr = ['first'];
arr.push('second', 'third');
console.log(arr);

इसके परिणामस्वरूप आप पुश का उपयोग कर सकते हैं।

var arr = ['first'];
arr.push('second', 'third');
arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr);

एनोटेटेड ईएस 5 में वास्तव में क्या है, इसकी अधिक जानकारी है धक्का है और लागू होता है, है।

2016 अपडेट: प्रसार के साथ , आपको इसकी आवश्यकता applyनहीं है, जैसे:

var arr = ['first'];
arr.push('second', 'third');

arr.push(...['fourth', 'fifth']);
console.log(arr) ;


25
एक नई सरणी नहीं बनाते समय किसी आइटम की एक सरणी को जोड़ने के लिए सबसे अच्छा जवाब।
गेब्रियल लिटमैन

1
@GabrielLittman विशेष रूप से क्योंकि एक सरणी, IMHO में संलग्न करना, सरणी को संशोधित करना चाहिए, एक नया नहीं बनाना चाहिए।
जुआन मेंडेस

3
मैं push.apply संस्करण पसंद करता हूं, Array.prototype.push.apply()हालांकि यह हालांकि उपयोग करेगा ।
माइकल

1
कभी-कभी किसी सरणी के संदर्भ को संरक्षित करना महत्वपूर्ण होता है - उदाहरण के लिए AngularJs में जब एक सरणी कुछ नियंत्रक पर गुंजाइश होती है और कुछ सेवा को प्रदर्शन के लिए सरणी में डेटा को अपडेट करने की आवश्यकता होती है। इसलिए मैं इस समाधान को बढ़ा रहा हूं।
देखिए

यह उत्तर वास्तव में उच्च होना चाहिए।
विसंगति

80

आप दो सरणियों को जोड़ने के लिए उपयोग pushऔर applyकार्य कर सकते हैं ।

var array1 = [11, 32, 75];
var array2 = [99, 67, 34];

Array.prototype.push.apply(array1, array2);
console.log(array1);

यह array2करने के लिए अपील करेंगे array1। अब array1शामिल है [11, 32, 75, 99, 67, 34]। यह कोड forसरणी में प्रत्येक और प्रत्येक आइटम को कॉपी करने के लिए लूप लिखने की तुलना में बहुत सरल है ।


यह वही है जो मुझे आवश्यक है, मूल सरणी संदर्भ बनाए रखें
amit bakle

यदि आप ES6 / 7 का उपयोग कर रहे हैं, तो आप इसे ...लागू करने के बजाय ऑपरेटर को भी const a1 = [] const a2 = [5,6,7] const.push(...a2) संपादित कर सकते हैं : वाक्यविन्यास हाइलाइट
Mieszko

मैं array1.concat(array2)इस स्थिति में उपयोग करेंगे । pushबेवजह की पुकार ।
संयोजकचरित्र

56

नए ES6 प्रसार ऑपरेटर के साथ , दो सरणियों का उपयोग करके जुड़ना pushऔर भी आसान हो जाता है:

var arr = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8, 9, 10];
arr.push(...arr2);
console.log(arr);

इस arr2के अंत में सामग्री जोड़ता है arr

बैबल REPL उदाहरण


47

यदि arrकोई सरणी है, और valवह मूल्य है जो आप उपयोग जोड़ना चाहते हैं:

arr.push(val);

उदाहरण के लिए

var arr = ['a', 'b', 'c'];
arr.push('d');
console.log(arr);



34

जावास्क्रिप्ट के साथ ECMAScript 5 मानक जो अब अधिकांश ब्राउज़रों द्वारा समर्थित है, तो आप उपयोग कर सकते हैं apply()संलग्न करने array1के लिए array2

var array1 = [3, 4, 5];
var array2 = [1, 2];

Array.prototype.push.apply(array2, array1);

console.log(array2); // [1, 2, 3, 4, 5]

ECMAScript 6 मानक के साथ जावास्क्रिप्ट जो क्रोम और एफएफ और आईई एज द्वारा समर्थित है, आप spreadऑपरेटर का उपयोग कर सकते हैं :

"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];

array2.push(...array1);

console.log(array2); // [1, 2, 3, 4, 5]

spreadऑपरेटर का स्थान ले लेगा array2.push(...array1);साथ array2.push(3, 4, 5);जब ब्राउज़र तर्क सोच रही है।

बोनस बिंदु

यदि आप दोनों सरणी से सभी आइटमों को संग्रहीत करने के लिए एक और चर बनाना चाहते हैं , तो आप ऐसा कर सकते हैं:

ES5 var combinedArray = array1.concat(array2);

ES6 const combinedArray = [...array1, ...array2]

प्रसार ऑपरेटर ( ...) एक संग्रह से सभी वस्तुओं को फैलाना है।


30

यदि आप दो सरणियों को जोड़ना चाहते हैं -

var a = ['a', 'b'];
var b = ['c', 'd'];

तो आप उपयोग कर सकते हैं:

var c = a.concat(b);

और यदि आप gसरणी में रिकॉर्ड जोड़ना चाहते हैं ( var a=[]) तो आप उपयोग कर सकते हैं:

a.push('g');

25

push()विधि एक सरणी के अंत तक नए आइटम कहते हैं, और नए लंबाई देता है। उदाहरण:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");

// The result of fruits will be:
Banana, Orange, Apple, Mango, Kiwi

आपके प्रश्न का सटीक उत्तर पहले से ही उत्तर दिया गया है, लेकिन आइए किसी सरणी में आइटम जोड़ने के कुछ अन्य तरीके देखें।

unshift()विधि एक सरणी की शुरुआत करने के लिए नए आइटम कहते हैं, और नए लंबाई देता है। उदाहरण:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon", "Pineapple");

// The result of fruits will be:
Lemon, Pineapple, Banana, Orange, Apple, Mango

और अंत में, concat()विधि का उपयोग दो या अधिक सरणियों में शामिल होने के लिए किया जाता है। उदाहरण:

var fruits = ["Banana", "Orange"];
var moreFruits = ["Apple", "Mango", "Lemon"];
var allFruits = fruits.concat(moreFruits);

// The values of the children array will be:
Banana, Orange, Apple, Mango, Lemon

25

जावास्क्रिप्ट में किसी सरणी को जोड़ने के कुछ तरीके हैं:

1)push() विधि एक सरणी के अंत में एक या अधिक तत्वों कहते हैं और सरणी के नए लंबाई देता है।

var a = [1, 2, 3];
a.push(4, 5);
console.log(a);

आउटपुट:

[1, 2, 3, 4, 5]

2)unshift() विधि एक सरणी की शुरुआत करने के लिए एक या अधिक तत्वों कहते हैं और सरणी के नए लंबाई देता है:

var a = [1, 2, 3];
a.unshift(4, 5);
console.log(a); 

आउटपुट:

[4, 5, 1, 2, 3]

3)concat() विधि दो या अधिक सरणियों विलय करने के लिए प्रयोग किया जाता है। यह विधि मौजूदा सरणियों को परिवर्तित नहीं करती है , बल्कि एक नया सरणी लौटाती है।

var arr1 = ["a", "b", "c"];
var arr2 = ["d", "e", "f"];
var arr3 = arr1.concat(arr2);
console.log(arr3);

आउटपुट:

[ "a", "b", "c", "d", "e", "f" ]

4) आप सरणी के .lengthअंत में एक तत्व जोड़ने के लिए सरणी की संपत्ति का उपयोग कर सकते हैं :

var ar = ['one', 'two', 'three'];
ar[ar.length] = 'four';
console.log( ar ); 

आउटपुट:

 ["one", "two", "three", "four"]

5)splice() विधि मौजूदा तत्वों को दूर करने और / या नए तत्व जोड़कर एक सरणी की सामग्री को बदल:

var myFish = ["angel", "clown", "mandarin", "surgeon"];
myFish.splice(4, 0, "nemo");
//array.splice(start, deleteCount, item1, item2, ...)
console.log(myFish);

आउटपुट:

["angel", "clown", "mandarin", "surgeon","nemo"]

6) आप किसी नए इंडेक्स को निर्दिष्ट करके और मान निर्दिष्ट करके सरणी में एक नया तत्व भी जोड़ सकते हैं:

var ar = ['one', 'two', 'three'];
ar[3] = 'four'; // add new element to ar
console.log(ar);

आउटपुट:

["one", "two","three","four"]

1 के लिए), यह कहता है "मूल सरणी को संशोधित किए बिना।" लेकिन pushइसका शाब्दिक अर्थ क्या है: यह नए तत्वों को आगे बढ़ाकर मूल सरणी को संशोधित करता है। क्या मैं इसे गलत पढ़ रहा हूं, या इसे संपादित किया जाना चाहिए?
फिल कैल्विन


17

यदि आप उच्चतम सूचकांक (जैसे कि एक चर "i" में संग्रहीत) जानते हैं तो आप कर सकते हैं

myArray[i + 1] = someValue;

हालाँकि यदि आप नहीं जानते हैं तो आप या तो उपयोग कर सकते हैं

myArray.push(someValue);

सुझाए गए अन्य उत्तरों के रूप में, या आप उपयोग कर सकते हैं

myArray[myArray.length] = someValue; 

ध्यान दें कि सारणी शून्य आधारित है। इसलिए उच्चतम सूचकांक प्लस को लौटाएं।

यह भी ध्यान दें कि आपको क्रम में जोड़ना नहीं है और आप वास्तव में मानों को छोड़ सकते हैं, जैसे कि

myArray[myArray.length + 1000] = someValue;

जिस स्थिति में बीच में मान अपरिभाषित का मान होगा।

यह इसलिए एक अच्छा अभ्यास है जब एक जावास्क्रिप्ट के माध्यम से पाशन किया जाता है कि यह सत्यापित करने के लिए कि उस बिंदु पर वास्तव में एक मूल्य मौजूद है।

यह कुछ इस तरह से किया जा सकता है:

if(myArray[i] === "undefined"){ continue; }

यदि आप निश्चित हैं कि आपके पास सरणी में कोई शून्य नहीं है तो आप बस कर सकते हैं:

if(!myArray[i]){ continue; }

निश्चित रूप से इस मामले में सुनिश्चित करें कि आप शर्त के रूप में उपयोग नहीं करते हैं myArray [i] (जैसा कि इंटरनेट पर कुछ लोग अंत के आधार पर सुझाव देते हैं कि जैसे ही मैं अधिक से अधिक होगा तो उच्चतम सूचकांक अपरिभाषित वापस आ जाएगा जो मूल्यांकन करता है असत्य)


आप वास्तव में मतलब नहीं है "undefined"। इसे अवश्य पढ़े void 0! "undefined"एक स्ट्रिंग है और "undefined" !== void 0इसलिए, if(myArray[i]जब तक कि इंडेक्स पर सरणी के iबराबर सामग्री के साथ स्ट्रिंग पर सेट नहीं किया जाता है , तब तक आपका झूठ गलत है 'u'+'n'+'d'+'e'+'f'+'i'+'n'+'e'+'d'। यह भी ध्यान दें कि आपको उपयोग नहीं करना चाहिए undefined, इसके बजाय उपयोग करें void 0। क्योंकि void 0हमेशा अपरिभाषित मूल्य होता है, जबकि undefinedकुछ के माध्यम से परिभाषित किया जा सकता है function x(undefined) { alert(undefined) } x("hello world"), इसलिए यदि कोई गलती से window["undefined"]=1या समान सेट करता है, तो आप निश्चित नहीं हो सकते ।
टीनो

14

एकल तत्व जोड़ें

//Append to the end
arrName.push('newName1');

//Prepend to the start
arrName.unshift('newName1');

//Insert at index 1
arrName.splice(1, 0,'newName1');
//1: index number, 0: number of element to remove, newName1: new element


// Replace index 3 (of exists), add new element otherwise.
arrName[3] = 'newName1';

कई तत्वों को जोड़ें

//Insert from index number 1
arrName.splice(1, 0,'newElemenet1', 'newElemenet2', 'newElemenet3');
//1: index number from where insert starts, 
//0: number of element to remove, 
//newElemenet1,2,3: new elements

सरणी में जोड़ें

//join two or more arrays
arrName.concat(newAry1, newAry2);
//newAry1,newAry2: Two different arrays which are to be combined (concatenated) to an existing array

1
क्यों नहीं arrName.push('newElemenet1, newElemenet2, newElemenet3')?
मिहेल मलोस्तानिडिस

1
पुश में () यह तत्व को अंतिम रूप से सम्मिलित करता है, लेकिन मेरे उदाहरण में यह एरे इंडेक्स 1 (उदाहरण के अनुसार) @Mihail Malostanidis
Srikrushna

ओह, मैंने सोचा था कि यह धारणा arrNameलंबाई की थी 1
मिहेल मलोस्तानिडिस

11

concat()बेशक, 2 आयामी सरणियों के साथ भी इस्तेमाल किया जा सकता है। कोई लूपिंग की आवश्यकता नहीं है।

var a = [[१, २], [३, ४]];

var b = [["a", "b"], ["c", "d"]];

b = b.concat (a);

चेतावनी (ख [2] [1]); // परिणाम २


10

सरणी की लंबाई संपत्ति को कार्य करने दें:

myarray[myarray.length] = 'new element value added to the end of the array';

myarray.length सरणी में तारों की संख्या लौटाती है। JS शून्य आधारित है इसलिए सरणी का अगला तत्व कुंजी सरणी की वर्तमान लंबाई होगी। पूर्व:

var myarray = [0, 1, 2, 3],
    myarrayLength = myarray.length; //myarrayLength is set to 4

9

बस एक तत्व के गैर-विनाशकारी जोड़ के लिए एक स्निपेट जोड़ना चाहते हैं।

var newArr = oldArr.concat([newEl]);

8

किसी सरणी में मान जोड़ें

चूंकि Array.prototype.push किसी सरणी के अंत में एक या एक से अधिक तत्व जोड़ता है और सरणी की नई लंबाई लौटाता है , कभी-कभी हम बस नए अप-टू-डेट सरणी प्राप्त करना चाहते हैं ताकि हम ऐसा कुछ कर सकें:

const arr = [1, 2, 3];
const val = 4;

arr.concat([val]); // [1, 2, 3, 4]

या केवल:

[...arr, val] // [1, 2, 3, 4]

2
बाकी ऑपरेटर के लिए ES6 के साथ सही।
monikapatelIT

7

यदि आप ES6 का उपयोग कर रहे हैं, तो आप इसे करने के लिए प्रसार ऑपरेटर का उपयोग कर सकते हैं ।

var arr = [
    "apple",
    "banana",
    "cherry"
];

var arr2 = [
    "dragonfruit",
    "elderberry",
    "fig"
];

arr.push(...arr2);

7

आप इसे नई जावास्क्रिप्ट Es 6 सुविधा का उपयोग करके कर सकते हैं:

// initialize array

var arr = [
    "Hi",
    "Hello",
    "Bangladesh"
];

// append new value to the array

arr= [...arr , "Feni"];

// or you can put a variable value

var testValue = "Cool";

arr = [...arr , testValue ];

console.log(arr); 

// final output  [ 'Hi', 'Hello', 'Bangladesh', 'Feni', 'Cool' ]

1
यह उस मान को सरणी में जोड़ता नहीं है, जो ओपी ने पूछा है। यह पुरानी सरणी और नए तत्वों की सामग्री के साथ एक नया सरणी बनाता है। वास्तव में, यह Array.concat है।
रिचर्ड मैथेसन

5

यदि आप डुप्लिकेट के बिना 2 सरणियों को संयोजित करना चाहते हैं तो आप नीचे दिए गए कोड को आज़मा सकते हैं

array_merge = function (arr1, arr2) {
  return arr1.concat(arr2.filter(function(item){
    return arr1.indexOf(item) < 0;
  }))
}

उपयोग:

array1 = ['1', '2', '3']
array2 = ['2', '3', '4', '5']
combined_array = array_merge(array1, array2)

आउटपुट: [१,२,३,४,५]


5

किसी एक आइटम को जोड़ें

किसी एकल आइटम को किसी सरणी में जोड़ने के लिए, push()ऐरे ऑब्जेक्ट द्वारा प्रदान की गई विधि का उपयोग करें :

const fruits = ['banana', 'pear', 'apple']
fruits.push('mango')
console.log(fruits)

push() मूल सरणी को बदल देता है।

इसके बजाय एक नया सरणी बनाने के लिए, concat()ऐरे विधि का उपयोग करें :

const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)

ध्यान दें कि concat()वास्तव में एक आइटम को सरणी में नहीं जोड़ा जाता है, लेकिन एक नया सरणी बनाता है, जिसे आप किसी अन्य चर को असाइन कर सकते हैं, या मूल सरणी को पुन: असाइन कर सकते हैं (इसे घोषित letकर सकते हैं, जैसा कि आप पुन const: असाइन नहीं कर सकते हैं ):

const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
let fruits = ['banana', 'pear', 'apple']
fruits = fruits.concat('mango')

कई आइटम संलग्न करें

किसी आइटम को एक सरणी में जोड़ने के लिए, आप push()इसे कई तर्कों के साथ कॉल करके उपयोग कर सकते हैं :

const fruits = ['banana', 'pear', 'apple']
fruits.push('mango', 'melon', 'avocado')
console.log(fruits)

आप concat()पहले देखे गए तरीके का भी उपयोग कर सकते हैं , अल्पविराम द्वारा अलग की गई वस्तुओं की सूची को पास करना:

const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango', 'melon', 'avocado')
console.log(allfruits)

या एक सरणी:

const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat(['mango', 'melon', 'avocado'])
console.log(allfruits)

याद रखें कि जैसा कि पहले बताया गया है कि यह विधि मूल सरणी को परिवर्तित नहीं करती है, लेकिन यह एक नया सरणी लौटाती है।

मूल रूप से पर पोस्ट किया गया



4

यदि आप किसी एकल मान को किसी सरणी में जोड़ना चाहते हैं, तो बस पुश विधि का उपयोग करें। यह सरणी के अंत में एक नया तत्व जोड़ देगा।

लेकिन अगर आप कई तत्वों को जोड़ने का इरादा रखते हैं, तो तत्वों को एक नए सरणी में संग्रहीत करें और दूसरे सरणी को पहले सरणी के साथ संक्षिप्त करें ... या तो जिस तरह से आप चाहें।

arr=['a','b','c'];
arr.push('d');
//now print the array in console.log and it will contain 'a','b','c','d' as elements.
console.log(array);

2

हमारे पास जावास्क्रिप्ट में ऐरे के लिए फ़ंक्शन नहीं है, लेकिन हमारे पास पुश और अनशिफ्ट है , कल्पना कीजिए कि आपके पास नीचे दिया गया है:

var arr = [1, 2, 3, 4, 5];

और हम इस सरणी के लिए एक मान जोड़ना चाहते हैं, हम कर सकते हैं, arr.push (6) और यह सरणी के अंत में 6 जोड़ देगा:

arr.push(6); // return [1, 2, 3, 4, 5, 6];

यह भी कि हम कैसे उपयोग कर सकते हैं, हम इसे कैसे लागू कर सकते हैं:

arr.unshift(0); //return [0, 1, 2, 3, 4, 5];

वे सरणियों में नए मूल्यों को जोड़ने या जोड़ने के लिए मुख्य कार्य हैं।


1

आप पुश विधि का उपयोग कर सकते हैं।

Array.prototype.append = function(destArray){
     destArray = destArray || [];
     this.push.call(this,...destArray);
     return this;
}
var arr = [1,2,5,67];
var arr1 = [7,4,7,8];
console.log(arr.append(arr1));// [7, 4, 7, 8, 1, 4, 5, 67, 7]
console.log(arr.append("Hola"))//[1, 2, 5, 67, 7, 4, 7, 8, "H", "o", "l", "a"]

0

push() एक सरणी के अंत में एक नया तत्व जोड़ता है।
pop()किसी सरणी के अंत से एक तत्व निकालता है।

किसी ऑब्जेक्ट का उपयोग करने के लिए (जैसे कि एक स्ट्रिंग या संख्या) एक सरणी उपयोग के लिए -
array.push(toAppend);


0

एक सरणी पर आइटम लागू करना

let fruits =["orange","banana","apple","lemon"]; /*array declaration*/

fruits.push("avacado"); /* Adding an element to the array*/

/*displaying elements of the array*/

for(var i=0; i < fruits.length; i++){
  console.log(fruits[i]);
}

0

यदि आप मान जोड़ना चाहते हैं तो आप पुश () का उपयोग कर सकते हैं arr.push("Test1", "Test2");

यदि आपके पास सरणी है तो आप कॉनैट () का उपयोग कर सकते हैं Array1.concat(Array2)

यदि आपके पास जोड़ने के लिए सिर्फ एक तत्व है तो आप लंबाई मेंथोड जैसे भी आज़मा सकते हैं array[aray.length] = 'test';

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.