Bagaimana cara menambahkan sebuah objek (seperti string atau bilangan) ke dalam array di JavaScript?
Gunakan Array.prototype.push
metode untuk menambahkan nilai ke array:
// initialize array
var arr = [
"Hi",
"Hello",
"Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);
Anda dapat menggunakan push()
fungsi untuk menambahkan lebih dari satu nilai ke array dalam satu panggilan:
// 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]);
}
Update
Jika anda ingin menambahkan item dari satu array ke array lain, anda dapat menggunakan firstArray.concat(secondArray)
:
var arr = [
"apple",
"banana",
"cherry"
];
arr = arr.concat([
"dragonfruit",
"elderberry",
"fig"
]);
console.log(arr);
Update
Hanya tambahan untuk jawaban ini jika anda ingin menambahkan nilai apapun untuk memulai sebuah array yang berarti untuk indeks pertama maka anda dapat menggunakan Array.prototype.unshift
untuk tujuan ini.
var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
Hal ini juga mendukung menambahkan beberapa nilai sekaligus seperti push
.
Jika anda're hanya menambahkan satu variabel, kemudian push()
bekerja dengan baik. Jika anda perlu untuk menambahkan array lain, menggunakan concat()
:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
var ar3 = ar1.concat(ar2);
alert(ar1);
alert(ar2);
alert(ar3);
Concat tidak mempengaruhi ar1
dan ar2
kecuali dipindahkan, misalnya:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
ar1 = ar1.concat(ar2);
alert(ar1);
Banyak info yang besar di sini.
Beberapa cepat benchmarking (setiap tes = 500k ditambahkan unsur-unsur dan hasilnya adalah rata-rata dari beberapa berjalan) menunjukkan sebagai berikut:
Firefox 3.6 (Mac):
arr[arr.panjang] = b
lebih cepat (300ms vs 800ms)arr.push(b)
lebih cepat (500ms vs 900ms)Safari 5.0 (Mac):
arr[arr.panjang] = b
lebih cepat (90ms vs 115ms)arr[arr.panjang] = b
lebih cepat (160ms vs 185ms)Google Chrome 6.0 (Mac):
Saya suka arr.push()
sintaks yang lebih baik, tapi saya pikir saya'a menjadi lebih baik dengan arr[arr.length]
Versi, setidaknya dalam baku kecepatan. I'd senang untuk melihat hasil dari IE menjalankan sekalipun.
Saya benchmarking loop:
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;
}
}
Saya pikir itu's layak disebut dorongan itu dapat disebut dengan berbagai argumen, yang akan ditambahkan ke array dalam urutan. Misalnya:
var arr = ['first'];
arr.push('second', 'third');
console.log(arr);
Sebagai hasil dari ini, anda dapat menggunakan push.berlaku untuk menambahkan sebuah array ke array lain seperti:
var arr = ['first'];
arr.push('second', 'third');
arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr);
Beranotasi ES5 memiliki info lebih lanjut tentang apa yang push dan apply lakukan.
2016 update: dengan menyebar, anda don't perlu itu apply
lagi, seperti:
var arr = ['first'];
arr.push('second', 'third');
arr.push(...['fourth', 'fifth']);
console.log(arr) ;
Anda dapat menggunakan push
dan terapkan
fungsi untuk menambahkan dua array.
var array1 = [11, 32, 75];
var array2 = [99, 67, 34];
Array.prototype.push.apply(array1, array2);
console.log(array1);
Ini akan menambahkan array2
untuk array1
. Sekarang array1
berisi[11, 32, 75, 99, 67, 34]
.
Kode ini jauh lebih sederhana daripada menulis untuk
loop untuk copy masing-masing dan setiap item dalam array.
Dengan baru ES6 menyebar operator, bergabung dengan dua array menggunakan push
menjadi lebih mudah:
var arr = [1, 2, 3, 4, 5];
var arr2 = [6, 7, 8, 9, 10];
arr.push(...arr2);
console.log(arr);
Hal ini menambah isi arr2
ke akhir arr
.
Javascript dengan ECMAScript 5 standar yang didukung oleh kebanyakan browser sekarang, anda dapat menggunakan berlaku()
untuk menambahkan array1
untuk 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 dengan ECMAScript 6 standar yang didukung oleh Chrome dan FF dan IE Edge, anda dapat menggunakan menyebar
operator:
"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];
array2.push(...array1);
console.log(array2); // [1, 2, 3, 4, 5]
Yang menyebar
operator akan menggantikan array2.push(...array1);
dengan array2.push(3, 4, 5);
ketika browser berpikir logika.
Bonus point
Jika anda'd ingin buat yang lain variabel untuk menyimpan semua barang-barang dari kedua array, anda dapat melakukan ini:
ES5 var combinedArray = array1.concat(array2);
ES6 const combinedArray = [...array1, ...array2]
Penyebaran operator (...
) adalah untuk menyebar semua item dari koleksi.
Jika anda ingin menambahkan dua array -
var a = ['a', 'b'];
var b = ['c', 'd'];
maka anda bisa menggunakan:
var c = a.concat(b);
Dan jika anda ingin menambahkan record g
untuk array (var a=[]
) maka anda bisa menggunakan:
a.push('g');
Ada beberapa cara untuk menambahkan sebuah array di JavaScript:
1) push()
metode menambah satu atau lebih elemen ke akhir array dan mengembalikan baru panjang array.
var a = [1, 2, 3];
a.push(4, 5);
console.log(a);
Output:
[1, 2, 3, 4, 5]
2) The unshift()
metode menambah satu atau lebih elemen ke awal array dan mengembalikan baru panjang array:
var a = [1, 2, 3];
a.unshift(4, 5);
console.log(a);
Output:
[4, 5, 1, 2, 3]
3) The concat()
adalah metode yang digunakan untuk menggabungkan dua atau lebih array. Metode ini tidak berubah ada array, tapi bukannya mengembalikan sebuah array baru.
var arr1 = ["a", "b", "c"];
var arr2 = ["d", "e", "f"];
var arr3 = arr1.concat(arr2);
console.log(arr3);
Output:
[ "a", "b", "c", "d", "e", "f" ]
4) Anda dapat menggunakan array's .panjang
properti untuk menambahkan elemen ke akhir array:
var ar = ['one', 'two', 'three'];
ar[ar.length] = 'four';
console.log( ar );
Output:
["one", "two", "three", "four"]
5) The splice()
metode perubahan isi sebuah array dengan menghilangkan unsur-unsur yang ada dan/atau menambahkan elemen baru:
var myFish = ["angel", "clown", "mandarin", "surgeon"];
myFish.splice(4, 0, "nemo");
//array.splice(start, deleteCount, item1, item2, ...)
console.log(myFish);
Output:
["angel", "clown", "mandarin", "surgeon","nemo"]
6) Anda juga dapat menambahkan elemen baru ke array hanya dengan menentukan indeks baru dan menetapkan nilai:
var ar = ['one', 'two', 'three'];
ar[3] = 'four'; // add new element to ar
console.log(ar);
Output:
["one", "two","three","four"]
Push()
metode menambahkan item baru ke akhir array, dan mengembalikan panjang baru. Contoh:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");
// The result of fruits will be:
Banana, Orange, Apple, Mango, Kiwi
Jawaban yang tepat untuk pertanyaan anda sudah dijawab, tapi let's melihat beberapa cara lain untuk menambahkan item ke dalam array.
The unshift()
metode menambahkan item baru ke awal array, dan mengembalikan panjang baru. Contoh:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon", "Pineapple");
// The result of fruits will be:
Lemon, Pineapple, Banana, Orange, Apple, Mango
Dan terakhir, concat()
metode ini digunakan untuk menggabungkan dua atau lebih array. Contoh:
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
Jika anda tahu indeks tertinggi (seperti yang disimpan dalam variabel "aku") maka anda bisa melakukan
myArray[i + 1] = someValue;
Namun jika anda don't know maka anda bisa menggunakan
myArray.push(someValue);
sebagai jawaban lain yang disarankan, atau anda bisa menggunakan
myArray[myArray.length] = someValue;
Perhatikan bahwa array adalah nol berbasis jadi .panjang kembali indeks tertinggi ditambah satu.
Perhatikan juga bahwa anda don't harus menambahkan dalam rangka dan anda dapat benar-benar melewatkan nilai-nilai, seperti yang di
myArray[myArray.length + 1000] = someValue;
Dalam hal nilai-nilai di antara akan memiliki nilai yang tidak terdefinisi.
Oleh karena itu praktek yang baik ketika perulangan melalui JavaScript untuk memverifikasi bahwa nilai yang benar-benar ada pada saat itu.
Hal ini dapat dilakukan dengan sesuatu seperti berikut:
if(myArray[i] === "undefined"){ continue; }
jika anda yakin bahwa anda don't memiliki angka nol dalam array maka anda hanya dapat melakukan:
if(!myArray[i]){ continue; }
Tentu saja pastikan dalam kasus ini bahwa anda don't digunakan sebagai kondisi myArray[i] (untuk beberapa orang melalui internet menyarankan didasarkan pada akhirnya bahwa segera setelah saya lebih besar maka indeks tertinggi itu akan kembali terdefinisi yang mengevaluasi ke false)
Menambahkan Elemen Tunggal
//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';
Tambahkan Beberapa Elemen
//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
Tambahkan array
//join two or more arrays
arrName.concat(newAry1, newAry2);
//newAry1,newAry2: Two different arrays which are to be combined (concatenated) to an existing array
myarray[myarray.length] = 'new element value added to the end of the array';
myarray.suhu udara mengembalikan jumlah string dalam array. JS adalah berbasis nol jadi, berikutnya elemen kunci dari array akan menjadi panjang saat menginap. EX:
var myarray = [0, 1, 2, 3],
myarrayLength = myarray.length; //myarrayLength is set to 4
Sejak Array.prototipe.push menambahkan satu atau lebih elemen ke akhir array dan kembali baru panjang array, kadang-kadang kita hanya ingin mendapatkan up-to-date array sehingga kita dapat melakukan sesuatu seperti:
const arr = [1, 2, 3];
const val = 4;
arr.concat([val]); // [1, 2, 3, 4]
Atau hanya:
[...arr, val] // [1, 2, 3, 4]