Kaip "JavaScript" prie masyvo pridėti objektą (pvz., eilutę arba skaičių)?
Naudokite Array.prototype.push
metodą reikšmėms prie masyvo pridėti:
// initialize array
var arr = [
"Hi",
"Hello",
"Bonjour"
];
// append new value to the array
arr.push("Hola");
console.log(arr);
Funkciją push()
galite naudoti norėdami vienu iškvietimu prie masyvo pridėti daugiau nei vieną reikšmę:
// 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]);
}
Atnaujinimas
Jei norite vieno masyvo elementus pridėti prie kito masyvo, galite naudoti `firstArray.concat(secondArray)
:
var arr = [
"apple",
"banana",
"cherry"
];
arr = arr.concat([
"dragonfruit",
"elderberry",
"fig"
]);
console.log(arr);
Atnaujinimas
Tik papildymas prie šio atsakymo, jei norite pridėti bet kokią reikšmę prie masyvo pradžios, t. y. prie pirmojo indekso, šiam tikslui galite naudoti Array.prototype.unshift
.
var arr = [1, 2, 3];
arr.unshift(0);
console.log(arr);
Jis taip pat palaiko kelių verčių pridėjimą vienu metu, kaip ir push
.
Jei pridedate tik vieną kintamąjį, push()
veikia puikiai. Jei reikia pridėti kitą masyvą, naudokite concat()
:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
var ar3 = ar1.concat(ar2);
alert(ar1);
alert(ar2);
alert(ar3);
Konkatavimas neturi įtakos ar1
ir ar2
, nebent perskirstoma, pvz:
var ar1 = [1, 2, 3];
var ar2 = [4, 5, 6];
ar1 = ar1.concat(ar2);
alert(ar1);
Daug puikios informacijos čia.
Greita lyginamoji analizė (kiekvienas testas = 500 tūkst. pridėtų elementų, o rezultatai yra kelių paleidimų vidurkiai) parodė, kad:
Firefox 3.6 ("Mac"):
"Safari 5.0" ("Mac"):
"Google Chrome 6.0" ("Mac"):
Man labiau patinka arr.push()
sintaksė, bet manau, kad man geriau tiktų arr[arr.length]
versija, bent jau kalbant apie greitį. Tačiau norėčiau pamatyti IE paleidimo rezultatus.
Mano lyginamosios analizės ciklai:
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;
}
}