Làm thế nào để nối một cái gì đó vào một mảng?


2893

Làm cách nào để thêm một đối tượng (chẳng hạn như chuỗi hoặc số) vào một mảng trong JavaScript?

Câu trả lời:


4389

Sử dụng Array.prototype.pushphương thức để nối các giá trị vào một mảng:

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

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

console.log(arr);


Bạn có thể sử dụng push()hàm để nối nhiều hơn một giá trị vào một mảng trong một cuộc gọi:

// 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]);
}


Cập nhật

Nếu bạn muốn thêm các mục của một mảng vào một mảng khác, bạn có thể sử dụng firstArray.concat(secondArray):

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

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

console.log(arr);

Cập nhật

Chỉ cần thêm vào câu trả lời này nếu bạn muốn nối bất kỳ giá trị nào vào đầu một mảng có nghĩa là chỉ mục đầu tiên thì bạn có thể sử dụng Array.prototype.unshiftcho mục đích này.

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

Nó cũng hỗ trợ nối thêm nhiều giá trị cùng một lúc push.


131
Lưu ý giá trị trả về của .push không phải là mảng (hoặc một cái mới, như .concat), mà là một số nguyên biểu thị độ dài mới của mảng.
Jay

8
@RST: hoàn toàn không sử dụng for(sử dụng .forEach).
Robert Siemer

34
Tôi muốn nói rằng mã ban đầu là tốt. Không cần bất cứ điều gì để tối ưu hóa quyền truy cập vào lengthtài sản. Trình thông dịch thực hiện một công việc tuyệt vời ở chính nó và nó sẽ không tạo ra bất kỳ sự khác biệt nào trong Thế giới thực cho dù bạn có tối ưu hóa nó đi hay không. Nếu mảng của bạn trở nên quá lớn đến nỗi việc tối ưu hóa .lengthsẽ thực sự có ích, rất có thể một mảng không còn là cấu trúc dữ liệu phù hợp nữa. Việc sử dụng forEachcó những ưu điểm, nhưng rất đáng nghi ngờ rằng hiệu suất tăng sẽ là một trong số đó, vì chức năng gọi cho mỗi lần lặp sẽ phát sinh chi phí và không tiết kiệm được gì.
Stijn de Witt

29
@RobertSiemer lengthThuộc tính của một mảng không được tính mỗi lần bạn gọi nó, đó là một biến được lưu trong arrayđối tượng, chỉ được cập nhật khi bạn thay đổi mảng. Vì vậy, trên thực tế không có chi phí hiệu suất bao gồm arr.lengthtrong forđiều kiện.
mikeyq6

7
@Mojimi Là người mới bắt đầu bỏ qua bất kỳ lời khuyên nào về các câu hỏi về hiệu suất trong các trường hợp cạnh như câu hỏi này. Sử dụng cú pháp biểu cảm hơn. Theo thời gian, thời gian chạy Javascript thêm tối ưu hóa nhiều hơn - chúng sẽ thực hiện các forEachhàm gọi lại nội tuyến (một số trong số chúng có thể đã làm điều đó) và sẽ không có sự khác biệt trong mã máy được tạo, nếu hàm được gọi thường đủ để được biên dịch thay vì được giải thích bởi thời gian chạy. Lời khuyên tương tự cũng xảy ra với bất kỳ ngôn ngữ nào không phải là trình biên dịch.
Mörre 17/12/17

1041

Nếu bạn chỉ nối thêm một biến duy nhất, thì nó push()hoạt động tốt. Nếu bạn cần nối thêm một mảng khác, hãy sử dụng concat():

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

var ar3 = ar1.concat(ar2);

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

Ví dụ không ảnh hưởng ar1ar2trừ khi được chỉ định lại, ví dụ:

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

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

Rất nhiều thông tin tuyệt vời ở đây .


163
Chỉ cần đảm bảo mọi người bắt var ar3 = ar1.concat (ar2); phần. ar1.concat (ar2) không lưu các giá trị vào ar1. Bạn phải bắt nó bằng cách gán nó cho ar3 hoặc quay lại ar1, chẳng hạn như: ar1 = ar1.concat (ar2);
vbullinger

31
Tôi thực sự nói đây là câu trả lời sai. Câu hỏi là How do I append to an array in JavaScript?, nhưng concatthực sự tạo ra một mảng mới . Đó là một sự khác biệt quan trọng! Thay vào đó, tôi muốn nói câu trả lời dưới đây của Omnimike thực sự là câu trả lời hay nhất: Sử dụng Push.apply để đẩy toàn bộ một mảng sang một mảng hiện có mà không tạo ra một mảng mới.
Stijn de Witt

@StijndeWitt bạn vẫn có thể nối thêm mà không cần tạo một mảng mới, như đã nêu trong nhận xét trước ar1 = ar1.concat(ar2);sẽ nối vàoar1
cameronjonesweb

2
@cameronjonesweb Trên thực tế, những gì nó làm là tạo ra một mảng mới có cùng nội dung như ar1, nối thêm ar2và sau đó trả về mảng mới. Chỉ cần bỏ phần chuyển nhượng ( ar1 = ...) khỏi dòng mã đó và bạn sẽ thấy rằng bản gốc ar1 không thực sự thay đổi. Nếu bạn muốn tránh tạo một bản sao, bạn sẽ cần push. Đừng tin tôi, hãy tin vào các tài liệu : "Phương thức concat () trả về một mảng mới" Câu đầu tiên trong các tài liệu cho concat.
Stijn de Witt

@StijndeWitt Bạn nói đúng. Tuy nhiên, một cách khác để xem xét nó ar2. Kết quả .pushtrong kịch bản sẽ là = [ar1, [ar2]]. .concat giải quyết vấn đề đó, nhưng với sự hy sinh tốc độ và một mảng mới được tạo ra. Để sử dụng .pushđúng trong phần bổ sung mảng, hãy lặp phần tử có chứa trước và đẩy từng phần tử. ar2.forEach(each => { ar1.push(each); });
Ade

408

Một số điểm chuẩn nhanh (mỗi bài kiểm tra = 500k phần tử được nối thêm và kết quả là trung bình của nhiều lần chạy) cho thấy như sau:

Firefox 3.6 (Mac):

  • Mảng nhỏ: arr[arr.length] = bnhanh hơn (300ms so với 800ms)
  • Mảng lớn: arr.push(b)nhanh hơn (500ms so với 900ms)

Safari 5.0 (Mac):

  • Mảng nhỏ: arr[arr.length] = bnhanh hơn (90ms so với 115ms)
  • Mảng lớn: arr[arr.length] = bnhanh hơn (160ms so với 185ms)

Google Chrome 6.0 (Mac):

  • Mảng nhỏ: Không có sự khác biệt đáng kể (và Chrome là NHANH CHÓNG! Chỉ ~ 38ms !!)
  • Mảng lớn: Không có sự khác biệt đáng kể (160ms)

Tôi thích arr.push()cú pháp tốt hơn, nhưng tôi nghĩ rằng tôi sẽ tốt hơn với arr[arr.length]Phiên bản, ít nhất là ở tốc độ thô. Tôi rất muốn xem kết quả của một lần chạy IE.


Vòng lặp điểm chuẩn của tôi:

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
Câu hỏi là nếu .length là một giá trị được lưu trữ hoặc được tính khi được truy cập, vì nếu giá trị sau là đúng thì có thể sử dụng một biến đơn giản (chẳng hạn như j) vì giá trị chỉ mục có thể còn nhanh hơn
yoel halb

4
Rất thích nhìn thấy concat () trong cùng một bài kiểm tra!
Justin

2
Tôi tự hỏi điều này đã thay đổi bao nhiêu trong bốn năm qua. (jsperf sẽ có ích ngay bây giờ.)
Paul Draper

8
Loại điểm chuẩn này rất thú vị, nhưng trớ trêu thay lại không hữu ích lắm trong việc làm cho ứng dụng nhanh hơn. Vòng lặp kết xuất đắt hơn nhiều trong bất kỳ chu kỳ nào. Ngoài ra, các phần bên trong của ngôn ngữ JS này liên tục được tối ưu hóa bởi các nhà phát triển trình duyệt. Đó là lý do cho downvote của tôi, không phải là sự thú vị của câu trả lời này. Nếu bạn muốn các ứng dụng nhanh hơn, trước tiên hãy điểm chuẩn và xem những gì cần thay đổi - 99 trong số 100 lần đó sẽ không phải là vấn đề như thử nghiệm này cho thấy. Thường thì nhà phát triển kém JS / CSS - không phải nội bộ trình duyệt đang làm cho nó chậm.
LessQuesar

7
Tôi đồng ý với LessQuesar trong việc gắn bó với các nội dung bất cứ khi nào có thể. Bản thân nó không phải là tối ưu hóa vi mô, nhưng ông nói đúng rằng các trình duyệt luôn cải thiện tốc độ động cơ của chúng. Trường hợp cụ thể: kể từ khi viết bài này, hiệu suất trên mỗi trình duyệt gần như giống hệt nhau cho tất cả các kỹ thuật được liệt kê ở trên. Có nghĩa là rất nhiều ồn ào một vài năm trước cho một lợi ích nhỏ như vậy, khi bây giờ không có lợi ích.
Beejor

297

Tôi nghĩ rằng đáng để đề cập rằng đẩy có thể được gọi với nhiều đối số, sẽ được thêm vào mảng theo thứ tự. Ví dụ:

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

Do đó, bạn có thể sử dụng push.apply để nối một mảng vào một mảng khác như vậy:

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

Chú thích ES5 có thêm thông tin về chính xác những gì đẩyáp dụng làm.

Cập nhật năm 2016: với mức độ lây lan , bạn không cần điều đó applynữa, như:

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

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


25
câu trả lời tốt nhất cho việc nối thêm một mảng các mặt hàng trong khi không tạo ra một mảng mới.
Gabriel Littman

1
@GabrielLittman Đặc biệt vì việc thêm vào một mảng, IMHO, nên sửa đổi mảng, không tạo một mảng mới.
Juan Mendes

3
Tôi thích phiên bản Push.apply, thay vì sử dụng Array.prototype.push.apply().
Michael

1
Đôi khi, điều quan trọng là duy trì tham chiếu đến một mảng - ví dụ như trong AngularJs khi một mảng nằm trong phạm vi trên một số bộ điều khiển và một số dịch vụ cần cập nhật dữ liệu trong mảng để hiển thị. Đó là lý do tại sao tôi nâng cao giải pháp này.
xem sắc nét hơn

Câu trả lời này nên thực sự cao hơn.
Bất thường

80

Bạn có thể sử dụng pushapplychức năng để nối hai mảng.

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

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

Nó sẽ nối array2vào array1. Bây giờ array1có chứa [11, 32, 75, 99, 67, 34]. Mã này đơn giản hơn nhiều so với việc viết forcác vòng lặp để sao chép từng mục trong mảng.


Đây là những gì tôi yêu cầu, duy trì tham chiếu mảng ban đầu
amit bakle 12/2/2016

Nếu bạn đang sử dụng ES6 / 7, bạn cũng có thể sử dụng ...toán tử thay vì áp dụng const a1 = [] const a2 = [5,6,7] const.push(...a2) chỉnh sửa: tô sáng cú pháp
Mieszko

Tôi sẽ sử dụng array1.concat(array2)trong tình huống này. Cuộc gọi đến pushdường như không cần thiết.
Trình kết nối


47

Nếu arrlà một mảng và vallà giá trị bạn muốn thêm sử dụng:

arr.push(val);

Ví dụ

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



34

Javascript với ECMAScript 5 tiêu chuẩn được hỗ trợ bởi hầu hết các trình duyệt hiện nay, bạn có thể sử dụng apply()để append 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]

Javascript với tiêu chuẩn ECMAScript 6 được Chrome và FF và IE Edge hỗ trợ, bạn có thể sử dụng spreadtoán tử:

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

array2.push(...array1);

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

Các spreadnhà điều hành sẽ thay thế array2.push(...array1);với array2.push(3, 4, 5);khi trình duyệt được suy nghĩ logic.

Điểm thưởng

Nếu bạn muốn tạo một biến khác để lưu trữ tất cả các mục từ cả hai mảng, bạn có thể làm điều này:

ES5 var combinedArray = array1.concat(array2);

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

Toán tử lây lan ( ...) là trải đều tất cả các mục từ một bộ sưu tập.


30

Nếu bạn muốn nối hai mảng -

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

sau đó bạn có thể sử dụng:

var c = a.concat(b);

Và nếu bạn muốn thêm bản ghi gvào mảng ( var a=[]) thì bạn có thể sử dụng:

a.push('g');

25

Các push()phương pháp bổ sung thêm các mục mới vào cuối của một mảng, và trả về chiều dài mới. Thí dụ:

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

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

Câu trả lời chính xác cho câu hỏi của bạn đã được trả lời, nhưng hãy xem xét một số cách khác để thêm các mục vào một mảng.

Các unshift()phương pháp bổ sung thêm các mục mới vào đầu của một mảng, và trả về chiều dài mới. Thí dụ:

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

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

Và cuối cùng, concat()phương thức được sử dụng để nối hai hoặc nhiều mảng. Thí dụ:

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

Có một số cách để nối một mảng trong JavaScript:

1) Các push()phương pháp bổ sung thêm một hoặc nhiều phần tử vào cuối mảng và trả về chiều dài mới của mảng.

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

Đầu ra:

[1, 2, 3, 4, 5]

2) Các unshift()phương pháp bổ sung thêm một hoặc nhiều phần tử vào đầu của một mảng và trả về chiều dài mới của mảng:

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

Đầu ra:

[4, 5, 1, 2, 3]

3) Các concat()phương pháp được sử dụng để kết hợp hai hay nhiều mảng. Phương pháp này không thay đổi các mảng hiện có mà thay vào đó trả về một mảng mới.

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

Đầu ra:

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

4) Bạn có thể sử dụng thuộc tính của mảng .lengthđể thêm một phần tử vào cuối mảng:

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

Đầu ra:

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

5) Các splice()phương pháp làm thay đổi nội dung của một mảng bằng cách loại bỏ các yếu tố hiện hữu và / hoặc thêm các yếu tố mới:

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

Đầu ra:

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

6) Bạn cũng có thể thêm một phần tử mới vào một mảng chỉ bằng cách chỉ định một chỉ mục mới và gán một giá trị:

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

Đầu ra:

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

Đối với 1), điều này nói "không sửa đổi mảng ban đầu." Nhưng đó thực sự là những gì push: nó sửa đổi mảng ban đầu bằng cách đẩy các phần tử mới lên trên nó. Tôi đang đọc sai, hay nên chỉnh sửa nó?
Phil Calvin

22

Bây giờ, bạn có thể tận dụng cú pháp ES6 và chỉ cần làm:

let array = [1, 2];
console.log([...array, 3]);

giữ mảng ban đầu bất biến.


17

Nếu bạn biết chỉ số cao nhất (chẳng hạn như được lưu trữ trong một biến "i") thì bạn có thể làm

myArray[i + 1] = someValue;

Tuy nhiên nếu bạn không biết thì bạn có thể sử dụng

myArray.push(someValue);

như các câu trả lời khác được đề xuất, hoặc bạn có thể sử dụng

myArray[myArray.length] = someValue; 

Lưu ý rằng mảng là 0 dựa trên .length trả về chỉ số cao nhất cộng với một.

Cũng lưu ý rằng bạn không phải thêm theo thứ tự và bạn thực sự có thể bỏ qua các giá trị, như trong

myArray[myArray.length + 1000] = someValue;

Trong trường hợp đó, các giá trị ở giữa sẽ có giá trị không xác định.

Do đó, đây là một cách thực hành tốt khi lặp qua JavaScript để xác minh rằng giá trị thực sự tồn tại tại thời điểm đó.

Điều này có thể được thực hiện bởi một cái gì đó như sau:

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

nếu bạn chắc chắn rằng bạn không có bất kỳ số 0 nào trong mảng thì bạn có thể thực hiện:

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

Tất nhiên, đảm bảo trong trường hợp này bạn không sử dụng như điều kiện myArray [i] (vì một số người trên internet đề xuất dựa trên kết thúc rằng ngay khi tôi lớn hơn thì chỉ số cao nhất sẽ trả về không xác định mà sẽ đánh giá sai)


Bạn thực sự không có nghĩa "undefined". Nó phải đọc void 0! "undefined"là một chuỗi và "undefined" !== void 0do đó, bạn if(myArray[i]là sai trừ khi mảng tại chỉ mục iđược đặt thành chuỗi có nội dung tương đương 'u'+'n'+'d'+'e'+'f'+'i'+'n'+'e'+'d'. Cũng lưu ý rằng bạn không nên sử dụng undefined, thay vào đó sử dụng void 0. Bởi vì void 0luôn luôn là giá trị không xác định, trong khi undefinedcó thể được xác định thông qua một cái gì đó như function x(undefined) { alert(undefined) } x("hello world"), vì vậy bạn không thể chắc chắn nếu ai đó vô tình đặt window["undefined"]=1hoặc tương tự.
Tino

14

Nối phần tử đơn

//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';

Nối nhiều yếu tố

//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

Nối mảng

//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
Tại sao không arrName.push('newElemenet1, newElemenet2, newElemenet3')?
Mihail Malostanidis

1
Trong phần đẩy () nó chèn phần tử cuối cùng nhưng trong ví dụ của tôi, nó chèn phần tử ở giữa tức là từ chỉ số mảng 1 (theo ví dụ) @Mihail Malostanidis
Srikrushna

Ồ, tôi nghĩ rằng giả định đó arrNamelà chiều dài 1.
Mihail Malostanidis

11

concat(), tất nhiên, có thể được sử dụng với mảng 2 chiều là tốt. Không cần lặp.

var a = [[1, 2], [3, 4]];

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

b = b.concat (a);

cảnh báo (b [2] [1]); // kết quả 2


10

Để thuộc tính chiều dài mảng thực hiện công việc:

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

myarray.length trả về số lượng chuỗi trong mảng. JS dựa trên 0 nên khóa phần tử tiếp theo của mảng sẽ là độ dài hiện tại của mảng. VÍ DỤ:

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

9

Chỉ muốn thêm một đoạn trích để thêm phần tử không phá hủy.

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

8

Nối một giá trị vào một mảng

Array.prototype.push thêm một hoặc nhiều phần tử vào cuối một mảng và trả về độ dài mới của mảng , đôi khi chúng tôi chỉ muốn lấy mảng cập nhật mới để chúng tôi có thể làm như vậy:

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

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

Hoặc chỉ:

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

2
Đúng với ES6 cho toán tử nghỉ.
monikapatelIT

7

Nếu bạn đang sử dụng ES6, bạn có thể sử dụng toán tử trải để làm điều đó.

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

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

arr.push(...arr2);

7

bạn có thể làm điều đó bằng tính năng javascript Es 6 mới:

// 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
Điều này không nối thêm giá trị vào mảng, đó là những gì OP yêu cầu. Điều này tạo ra một mảng mới, với nội dung của mảng cũ và các phần tử mới. Thực sự, đây là Array.concat.
Richard Matheson

5

Nếu bạn muốn kết hợp 2 mảng mà không trùng lặp, bạn có thể thử mã bên dưới

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

sử dụng:

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

Đầu ra: [1,2,3,4,5]


5

Nối một mục duy nhất

Để nối thêm một mục vào một mảng, hãy sử dụng push()phương thức được cung cấp bởi đối tượng Array:

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

push() làm biến đổi mảng ban đầu.

Để tạo một mảng mới thay vào đó, hãy sử dụng concat()phương thức Array:

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

Lưu ý rằng concat()không thực sự thêm một mục vào mảng, nhưng tạo ra một mảng mới, mà bạn có thể gán cho một biến khác hoặc gán lại cho mảng ban đầu (khai báo nó là let, vì bạn không thể gán lại a const):

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

Nối nhiều mục

Để nối thêm một mục vào một mảng, bạn có thể sử dụng push()bằng cách gọi nó với nhiều đối số:

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

Bạn cũng có thể sử dụng concat()phương pháp bạn đã thấy trước đây, chuyển qua danh sách các mục được phân tách bằng dấu phẩy:

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

hoặc một mảng:

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

Hãy nhớ rằng như được mô tả trước đây phương thức này không làm thay đổi mảng ban đầu, nhưng nó trả về một mảng mới.

Ban đầu được đăng tại


4

Bạn .push () giá trị đó trong. Ví dụ: Array.push (value);


4

Nếu bạn muốn nối một giá trị đơn vào một mảng, chỉ cần sử dụng phương thức đẩy. Nó sẽ thêm một phần tử mới vào cuối mảng.

Nhưng nếu bạn có ý định thêm nhiều phần tử thì lưu trữ các phần tử trong một mảng mới và nối mảng thứ hai với mảng thứ nhất ... theo cách bạn muốn.

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

Chúng tôi không có chức năng chắp thêm cho Array trong javascript, nhưng chúng tôi có đẩyunshift , hãy tưởng tượng bạn có mảng dưới đây:

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

và chúng tôi muốn nối thêm một giá trị vào mảng này, chúng tôi có thể làm, Array.push (6) và nó sẽ thêm 6 vào cuối mảng:

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

ngoài ra chúng ta có thể sử dụng unshift, hãy xem cách chúng ta có thể áp dụng điều này:

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

Chúng là các hàm chính để thêm hoặc nối các giá trị mới vào các mảng.


1

Bạn có thể sử dụng phương pháp đẩy.

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() thêm một phần tử mới vào cuối của một mảng.
pop()loại bỏ một phần tử từ cuối một mảng.

Để nối thêm một đối tượng (chẳng hạn như chuỗi hoặc số) vào một mảng sử dụng -
array.push(toAppend);


0

Nối các mục trên một mảng

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

Bạn có thể sử dụng đẩy () nếu bạn muốn thêm giá trị, vd arr.push("Test1", "Test2");

Nếu bạn có mảng, bạn có thể sử dụng concat () vd Array1.concat(Array2)

Nếu bạn chỉ có một yếu tố để thêm, bạn cũng có thể thử độ dài cố định, ví dụ: array[aray.length] = 'test';

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.