Jawaban:
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]);
}
Memperbarui
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);
Memperbarui
Hanya tambahan untuk jawaban ini jika Anda ingin menambahkan nilai apa pun ke awal array yang berarti indeks pertama maka Anda dapat menggunakan Array.prototype.unshift
untuk tujuan ini.
var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
Ini juga mendukung penambahan beberapa nilai sekaligus push
.
for
sama sekali (gunakan .forEach
).
length
properti. Penerjemah melakukan pekerjaan yang luar biasa pada itu sendiri dan itu tidak akan membuat perbedaan di Dunia Nyata apakah Anda mengoptimalkannya atau tidak. Jika array Anda menjadi sangat besar sehingga optimalisasi .length
sebenarnya akan membantu, kemungkinan besar array bukan struktur data yang tepat lagi. Menggunakan forEach
memiliki kelebihan, tetapi sangat diragukan bahwa peningkatan kinerja akan menjadi salah satunya, karena panggilan fungsi untuk setiap iterasi menimbulkan biaya dan tidak menghemat apa pun.
length
Properti dari array tidak dihitung setiap kali Anda menyebutnya, itu variabel yang disimpan dalam array
objek, yang hanya diperbarui ketika Anda mengubah array. Jadi sebenarnya tidak ada biaya kinerja termasuk arr.length
dalam for
kondisi.
forEach
fungsi panggilan balik (beberapa dari mereka mungkin sudah melakukan itu) dan tidak akan ada perbedaan dalam kode mesin yang dihasilkan, jika fungsi ini dipanggil cukup sering untuk dikompilasi daripada ditafsirkan oleh runtime. Saran yang sama berlaku untuk bahasa apa pun yang bukan assembler, sebenarnya.
Jika Anda hanya menambahkan satu variabel, maka push()
berfungsi dengan baik. Jika Anda perlu menambahkan array lain, gunakan 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 ditugaskan kembali, misalnya:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
ar1 = ar1.concat(ar2);
alert(ar1);
Banyak info hebat di sini .
How do I append to an array in JavaScript?
, tapi concat
benar-benar menciptakan sebuah baru larik. Itu perbedaan penting! Sebaliknya saya akan mengatakan jawaban di bawah ini oleh Omnimike sebenarnya yang terbaik: Gunakan Push.apply untuk mendorong seluruh array ke array yang ada tanpa membuat yang baru.
ar1 = ar1.concat(ar2);
akan ditambahkan kear1
ar1
, tambahkan ar2
lalu kembalikan larik baru. Biarkan saja bagian penugasan ( ar1 = ...
) dari baris kode itu dan Anda akan melihat bahwa aslinya ar1
tidak berubah. Jika Anda ingin menghindari membuat salinan, Anda perlu push
. Jangan percaya padaku, percayalah pada dokumen : "Metode concat () mengembalikan array baru" Kalimat pertama dalam dokumen untuk concat
.
ar2
atas adalah anyways. Hasilnya .push
dalam skenario akan menjadi = [ar1, [ar2]]
. .concat memecahkan masalah itu, tetapi dengan pengorbanan kecepatan dan array baru dibuat. Untuk menggunakan .push
dengan benar dalam menambahkan array, loop keluar elemen yang terkandung pertama dan dorong masing-masing ar2.forEach(each => { ar1.push(each); });
Beberapa pembandingan cepat (setiap pengujian = 500rb elemen yang ditambahkan dan hasilnya adalah rata-rata dari beberapa putaran) menunjukkan hal berikut:
Firefox 3.6 (Mac):
arr[arr.length] = b
lebih cepat (300 ms vs. 800 ms)arr.push(b)
lebih cepat (500ms vs 900ms)Safari 5.0 (Mac):
arr[arr.length] = b
lebih cepat (90ms vs 115ms)arr[arr.length] = b
lebih cepat (160ms vs 185ms)Google Chrome 6.0 (Mac):
Saya menyukai arr.push()
sintaks yang lebih baik, tetapi saya pikir saya akan lebih baik dengan arr[arr.length]
Versi, setidaknya dalam kecepatan mentah. Saya ingin melihat hasil dari menjalankan IE sekalipun.
Loop pembandingan saya:
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 perlu disebutkan bahwa push dapat dipanggil dengan beberapa argumen, yang akan ditambahkan ke dalam array secara berurutan. Sebagai contoh:
var arr = ['first'];
arr.push('second', 'third');
console.log(arr);
Sebagai hasilnya, Anda dapat menggunakan push.apply untuk menambahkan array ke array lain seperti:
var arr = ['first'];
arr.push('second', 'third');
arr.push.apply(arr, ['forth', 'fifth']);
console.log(arr);
ES5 beranotasi memiliki lebih banyak info tentang apa yang push dan apply lakukan.
Pembaruan 2016: dengan spread , Anda tidak perlu apply
lagi, seperti:
var arr = ['first'];
arr.push('second', 'third');
arr.push(...['fourth', 'fifth']);
console.log(arr) ;
Array.prototype.push.apply()
.
Anda dapat menggunakan push
dan apply
berfungsi 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 ditambahkan array2
ke array1
. Sekarang array1
berisi [11, 32, 75, 99, 67, 34]
. Kode ini jauh lebih sederhana daripada menulis for
loop untuk menyalin setiap item dalam array.
...
operator alih-alih menerapkan const a1 = [] const a2 = [5,6,7] const.push(...a2)
edit: sintaksis sorot
array1.concat(array2)
dalam situasi ini. Panggilan ke push
tampaknya tidak perlu.
Dengan operator spread ES6 baru , menggabungkan 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);
Ini menambahkan konten arr2
ke akhir arr
.
Jika arr
array, dan val
nilai yang ingin Anda tambahkan gunakan:
arr.push(val);
Misalnya
var arr = ['a', 'b', 'c'];
arr.push('d');
console.log(arr);
Gunakan concat
:
a = [1, 2, 3];
b = [3, 4, 5];
a = a.concat(b);
console.log(a);
Javascript dengan ECMAScript 5 standar yang didukung oleh kebanyakan browser sekarang, Anda dapat menggunakan apply()
untuk append array1
ke 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 standar ECMAScript 6 yang didukung oleh Chrome dan FF dan IE Edge, Anda dapat menggunakan spread
operator:
"use strict";
let array1 = [3, 4, 5];
let array2 = [1, 2];
array2.push(...array1);
console.log(array2); // [1, 2, 3, 4, 5]
The spread
Operator akan menggantikan array2.push(...array1);
dengan array2.push(3, 4, 5);
ketika browser berpikir logika.
Poin bonus
Jika Anda ingin membuat variabel lain untuk menyimpan semua item dari kedua array, Anda bisa melakukan ini:
ES5 var combinedArray = array1.concat(array2);
ES6 const combinedArray = [...array1, ...array2]
Operator spread ( ...
) 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 catatan g
ke array ( var a=[]
) maka Anda dapat menggunakan:
a.push('g');
The 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 tepat untuk pertanyaan Anda sudah dijawab, tetapi mari kita lihat beberapa cara lain untuk menambahkan item ke 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
Ada beberapa cara untuk menambahkan array dalam JavaScript:
1) The push()
Metode menambahkan satu atau lebih elemen ke akhir array dan mengembalikan panjang baru dari array.
var a = [1, 2, 3];
a.push(4, 5);
console.log(a);
Keluaran:
[1, 2, 3, 4, 5]
2) The unshift()
Metode menambahkan satu atau lebih elemen ke awal array dan mengembalikan panjang baru dari array:
var a = [1, 2, 3];
a.unshift(4, 5);
console.log(a);
Keluaran:
[4, 5, 1, 2, 3]
3) The concat()
metode yang digunakan untuk menggabungkan dua atau lebih array. Metode ini tidak mengubah array yang ada, tetapi mengembalikan array baru.
var arr1 = ["a", "b", "c"];
var arr2 = ["d", "e", "f"];
var arr3 = arr1.concat(arr2);
console.log(arr3);
Keluaran:
[ "a", "b", "c", "d", "e", "f" ]
4) Anda dapat menggunakan .length
properti array untuk menambahkan elemen ke akhir array:
var ar = ['one', 'two', 'three'];
ar[ar.length] = 'four';
console.log( ar );
Keluaran:
["one", "two", "three", "four"]
5) The splice()
Metode mengubah isi array dengan menghapus elemen 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);
Keluaran:
["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);
Keluaran:
["one", "two","three","four"]
push
sebenarnya: ia memodifikasi array asli dengan mendorong elemen baru ke dalamnya. Apakah saya salah membaca ini, atau haruskah ini diedit?
Sekarang, Anda dapat memanfaatkan sintaks ES6 dan cukup lakukan:
let array = [1, 2];
console.log([...array, 3]);
menjaga array asli tidak berubah.
Jika Anda tahu indeks tertinggi (seperti disimpan dalam variabel "i") maka Anda bisa melakukannya
myArray[i + 1] = someValue;
Namun jika Anda tidak tahu maka Anda bisa menggunakannya
myArray.push(someValue);
sebagai jawaban lain yang disarankan, atau Anda dapat menggunakan
myArray[myArray.length] = someValue;
Perhatikan bahwa array berbasis nol sehingga .length mengembalikan indeks tertinggi ditambah satu.
Perhatikan juga bahwa Anda tidak perlu menambahkan secara berurutan dan Anda dapat benar-benar melewati nilai, seperti pada
myArray[myArray.length + 1000] = someValue;
Dalam hal ini nilai-nilai di antaranya akan memiliki nilai yang tidak terdefinisi.
Oleh karena itu praktik yang baik ketika mengulang melalui JavaScript untuk memverifikasi bahwa nilai sebenarnya ada pada saat itu.
Ini dapat dilakukan dengan sesuatu seperti berikut ini:
if(myArray[i] === "undefined"){ continue; }
jika Anda yakin bahwa Anda tidak memiliki nol dalam array maka Anda bisa melakukannya:
if(!myArray[i]){ continue; }
Tentu saja pastikan dalam kasus ini bahwa Anda tidak menggunakan sebagai kondisi myArray [i] (karena beberapa orang di internet menyarankan berdasarkan pada akhir bahwa begitu saya lebih besar maka indeks tertinggi akan kembali tidak terdefinisi yang mengevaluasi ke Salah)
"undefined"
. Itu harus dibaca void 0
! "undefined"
adalah string dan "undefined" !== void 0
, karenanya Anda if(myArray[i]
salah kecuali array pada indeks i
diatur ke string dengan isi yang setara dengan 'u'+'n'+'d'+'e'+'f'+'i'+'n'+'e'+'d'
. Perhatikan juga bahwa Anda tidak boleh menggunakan undefined
, sebagai gantinya gunakan void 0
. Karena void 0
selalu merupakan nilai yang tidak ditentukan, sementara undefined
dapat didefinisikan melalui sesuatu seperti function x(undefined) { alert(undefined) } x("hello world")
, jadi Anda tidak dapat memastikan apakah seseorang secara tidak sengaja mengatur window["undefined"]=1
atau serupa.
Tambahkan 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
arrName.push('newElemenet1, newElemenet2, newElemenet3')
?
arrName
panjang 1
.
myarray[myarray.length] = 'new element value added to the end of the array';
myarray.length mengembalikan jumlah string dalam array. JS berbasis nol sehingga elemen kunci array selanjutnya akan menjadi panjang array saat ini. EX:
var myarray = [0, 1, 2, 3],
myarrayLength = myarray.length; //myarrayLength is set to 4
Hanya ingin menambahkan cuplikan untuk penambahan elemen yang tidak merusak.
var newArr = oldArr.concat([newEl]);
Karena Array.prototype.push menambahkan satu atau lebih elemen ke akhir array dan mengembalikan panjang array yang baru , kadang-kadang kita hanya ingin mendapatkan array yang baru 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]
Anda dapat melakukannya menggunakan fitur javascript Es 6 baru:
// 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' ]
jika Anda ingin menggabungkan 2 array tanpa duplikat Anda dapat mencoba kode di bawah ini
array_merge = function (arr1, arr2) {
return arr1.concat(arr2.filter(function(item){
return arr1.indexOf(item) < 0;
}))
}
pemakaian:
array1 = ['1', '2', '3']
array2 = ['2', '3', '4', '5']
combined_array = array_merge(array1, array2)
Output: [1,2,3,4,5]
Untuk menambahkan satu item ke array, gunakan push()
metode yang disediakan oleh objek Array:
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango')
console.log(fruits)
push()
bermutasi array asli.
Untuk membuat array baru, gunakan concat()
metode Array:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
Perhatikan bahwa concat()
sebenarnya tidak menambahkan item ke array, tetapi membuat array baru, yang dapat Anda tetapkan ke variabel lain, atau menetapkan kembali ke array asli (menyatakan sebagai let
, karena Anda tidak dapat menetapkan kembali a const
):
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango')
console.log(allfruits)
let fruits = ['banana', 'pear', 'apple']
fruits = fruits.concat('mango')
Untuk menambahkan beberapa item ke sebuah array, Anda dapat menggunakannya push()
dengan memanggilnya dengan beberapa argumen:
const fruits = ['banana', 'pear', 'apple']
fruits.push('mango', 'melon', 'avocado')
console.log(fruits)
Anda juga dapat menggunakan concat()
metode yang Anda lihat sebelumnya, melewati daftar item yang dipisahkan oleh koma:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat('mango', 'melon', 'avocado')
console.log(allfruits)
atau sebuah array:
const fruits = ['banana', 'pear', 'apple']
const allfruits = fruits.concat(['mango', 'melon', 'avocado'])
console.log(allfruits)
Ingat bahwa seperti yang dijelaskan sebelumnya metode ini tidak mengubah array asli, tetapi mengembalikan array baru.
Awalnya diposting di
Jika Anda ingin menambahkan nilai tunggal ke dalam array, cukup gunakan metode push. Ini akan menambahkan elemen baru di akhir array.
Tetapi jika Anda berniat untuk menambahkan banyak elemen maka simpan elemen-elemen tersebut dalam array baru dan gabungkan array kedua dengan array pertama ... apa pun yang Anda inginkan.
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);
Kami tidak memiliki fungsi append untuk Array di javascript, tetapi kami memiliki push dan unshift , bayangkan Anda memiliki array di bawah ini:
var arr = [1, 2, 3, 4, 5];
dan kami suka menambahkan nilai ke array ini, bisa kita lakukan, arr.push (6) dan itu akan menambahkan 6 ke akhir array:
arr.push(6); // return [1, 2, 3, 4, 5, 6];
kita juga dapat menggunakan unshift, lihat bagaimana kita dapat menerapkan ini:
arr.unshift(0); //return [0, 1, 2, 3, 4, 5];
Mereka adalah fungsi utama untuk menambah atau menambahkan nilai baru ke array.
Anda dapat menggunakan metode push.
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"]
push()
menambahkan elemen baru ke akhir array.
pop()
menghapus elemen dari akhir array.
Untuk menambahkan objek (seperti string atau angka) ke penggunaan array -
array.push(toAppend);
Anda dapat menggunakan push () jika Anda ingin menambahkan nilai misalnya arr.push("Test1", "Test2");
Jika Anda memiliki array, Anda dapat menggunakan concat () mis Array1.concat(Array2)
Jika Anda hanya memiliki satu elemen untuk ditambahkan, Anda juga dapat mencoba menthod panjang mis array[aray.length] = 'test';