js陣列push方法使用注意

2021-09-08 13:40:05 字數 2221 閱讀 6119

js 陣列的push方法,想必大家都知道是向陣列末尾新增元素,但是有乙個很關鍵的點需注意:

引自mdn

當呼叫該方法時,新的length屬性值將被返回。

var sports = ["soccer", "baseball"];

var total = sports.push("football", "swimming");

console.log(sports);

//["soccer", "baseball", "football", "swimming"]

console.log(total);

//4

陣列push之後返回的是length,而不是新的陣列,如果不清楚這點,在使用過程中回遇到很大的坑。

順帶記一下其他幾個陣列的方法返回值:

pop()

pop()方法從陣列中刪除最後乙個元素,並返回該元素的值。此方法更改陣列的長度。

let a = [1, 2, 3];

a.length; //3

a.pop(); //3

console.log(a);

//[1, 2]

a.length; //

2arr.pop()

返回值從陣列中刪除的元素(當陣列為空時返回undefined)。

shift()

shift() 方法從陣列中刪除第乙個元素,並返回該元素的值。此方法更改陣列的長度。

let a = [1, 2, 3];

let b =a.shift();

console.log(a);

//[2, 3]

console.log(b); //1

返回值

從陣列中刪除的元素; undefined 如果陣列為空。

arr.shift()

unshift()

unshift() 方法將乙個或多個元素新增到陣列的開頭,並返回新陣列的長度。

let a = [1, 2, 3];

a.unshift(4, 5);

console.log(a);

//[4, 5, 1, 2, 3]

arr.unshift(element1, ..., elementn)

引數列表

element1, ..., elementn

要新增到陣列開頭的元素。

返回值當乙個物件呼叫該方法時,返回其 length 屬性值。

concat() 方法用於合併兩個或多個陣列。此方法不會更改現有陣列,而是返回乙個新陣列。

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

var arr2 = ['d', 'e', 'f'];

var arr3 =arr1.concat(arr2);

//arr3 is a new array [ "a", "b", "c", "d", "e", "f" ]

var new_array =old_array.concat(value1[, value2[, ...[, valuen]]])

引數valuen

將陣列和/或值連線成新陣列。

返回值新的 array 例項。

splice()

splice()方法通過刪除現有元素和/或新增新元素來更改乙個陣列的內容。

由被刪除的元素組成的乙個陣列。如果只刪除了乙個元素,則返回只包含乙個元素的陣列。如果沒有刪除元素,則返回空陣列。

slice()方法返回乙個從開始到結束(

不包括結束)選擇的陣列的一部分淺拷貝到乙個新陣列物件,原始陣列不會被修改

返回值:

乙個含有提取元素的新陣列

總結:開頭和結尾新增都是返回陣列的長度;

開頭和結尾的刪除都是返回刪除的元素;

splice()返回被刪除的元素;

concat返回新的陣列;

slice返回提取的陣列;

JS陣列常用方法 2 push方法使用及原理

push方法的作用是向陣列末尾新增乙個或多個元素,引數是要push到陣列的元素,返回值是陣列新的長度,push方法會影響原陣列 push方法的原理就是動態的獲取傳遞給push方法的引數,然後依次迴圈遍歷的加到原陣列後面 push方法 作用 向陣列末尾新增乙個或多個元素 引數 element1,ele...

js陣列的push操作

今天需要將乙個物件push到乙個物件陣列中 const tablecolumns const operationcolumns 刪除 將operationcolumns 的物件push進去tablecolumns 一開始的寫法 const columns oprtype 3 tablecolumns...

JS 陣列中push物件,覆蓋問題

發現將物件push進陣列,後面的值會覆蓋前面的值,最後輸出的都是最後一次的值。其實這一切都是引用資料型別惹的禍。如果你也有類似問題,可以繼續看下去哦。下面 模擬 將json物件的每個鍵值對,單獨搞成物件,再賦值給陣列,最後輸出陣列。結果陣列應該是有三個物件。for in用於物件遍歷 12 3456 ...