javascript - js bind用法




如何將某些內容附加到數組中? (20)

如何在JavaScript中將對象(如字符串或數字)附加到數組中?


只想添加一個片段,用於非破壞性添加元素。

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

讓數組長度屬性完成工作:

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

myarray.length返回數組中的字符串數。 JS基於零,因此數組的下一個元素鍵將是數組的當前長度。 EX:

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

附加單個項目

要將單個項附加到數組,請使用Array對象提供的push()方法:

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

push()改變了原始數組。

要改為創建一個新數組,請使用firstArray.concat(secondArray) Array方法:

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)

js let fruits = ['banana', 'pear', 'apple'] fruits = fruits.concat('mango')

附加多個項目

要將多項附加到數組,可以使用push()通過多個參數調用它:

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

您還可以使用之前看到的firstArray.concat(secondArray)方法,傳遞由逗號分隔的項目列表:

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)

請記住,如前所述,此方法不會改變原始數組,但會返回一個新數組。

最初發佈於https://flaviocopes.com/how-to-append-item-to-array/


push()在數組的末尾添加一個新元素。
pop()從數組的末尾刪除一個元素。

要將對象(如字符串或數字)附加到數組使用 -
array.push(toAppend);


你可以使用新的javascript 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' ]

有幾種方法可以在JavaScript中附加數組:

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"]

一些快速基準測試(每個測試= 500k附加元素,結果是多次運行的平均值)顯示如下:

Firefox 3.6(Mac):

  • 小數組: arr[arr.length] = b更快 (300ms vs. 800ms)
  • 大型陣列: arr.push(b)更快 (500ms與900ms)

Safari 5.0(Mac):

  • 小數組: arr[arr.length] = b更快 (90ms vs 115ms)
  • 大數組: arr[arr.length] = b更快 (160ms vs. 185ms)

谷歌Chrome 6.0(Mac):

  • 小陣列: 沒有顯著差異 (Chrome很快!只有~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;
    }
}

你.push()那個值。 例如: array.push(value);



使用新的ES6 擴展運算符 ,使用push連接兩個數組變得更加容易:

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

這會將arr2的內容添加到arr的末尾。

Babel REPL示例


如果arr是一個數組, val是你想要添加的值:

arr.push(val);

例如

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

將記錄:

['a', 'b', 'c', 'd']

如果你只是附加一個變量,那麼push()可以正常工作。 如果需要追加另一個數組,請使用concat()

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

var ar3 = ar1.concat(ar2);

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

吐出來的:

"1,2,3"
"4,5,6"
"1,2,3,4,5,6"

除非重新分配,否則concat不會影響ar1ar2 ,例如:

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

將顯示:

"1,2,3,4,5,6"

here很多很棒的信息


如果你想追加兩個數組 -

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

然後你可以使用:

var c = a.concat(b);

如果你想將記錄g添加到數組( var a=[] ),那麼你可以使用:

a.push('g');

如果您使用的是ES6,則可以使用spread運算符來執行此操作。

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

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

arr.push(...arr2);

如果要將單個值附加到數組中,只需使用push方法即可。 它將在數組末尾添加一個新元素。

但是如果你打算添加多個元素,那麼將元素存儲在一個新數組中,並用第一個數組連接第二個數組......你想要的任何一種方式。

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);

如果要添加值,可以使用push(),例如arr.push("Test1", "Test2");

如果你有數組你可以使用concat()例如Array1.concat(Array2)

如果你只有一個要添加的元素,你也可以嘗試長度為menthod,例如array[aray.length] = 'test';


我們沒有在javascript中為Array添加函數,但我們有推送取消移動 ,想像你有下面的數組:

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

我們喜歡在這個數組中附加一個值,我們可以這樣做,arr.push(6)並且它會在數組的末尾添加6:

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

我們也可以使用unshift,看看我們如何應用這個:

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

它們是向數組添加或附加新值的主要功能。


我認為值得一提的是,可以使用多個參數調用push,這些參數將按順序附加到數組中。 例如:

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

因此,您可以使用push.apply將數組附加到另一個數組,如下所示:

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

帶註釋的ES5有關於pushapply詳細信息。

2016年更新:有spread ,您不再需要apply ,例如:

arr.push(...['fourth', 'fifth']);
console.log(arr) // ['first', 'second', 'third', 'fourth', 'fifth']

現在,您可以利用ES6語法並執行以下操作:

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

保持原始數組不可變。


當然, concat()也可以用於二維數組。 不需要循環。

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

var b = [[“a”,“b”],[“c”,“d”]];

b = b.concat(a);

警報(B [2] [1]); //結果2





append