js 數組的push方法,想必大家都知道是向數組末尾添加元素,但是有一個很關鍵的點需註意: 引自 MDN 返回值 當調用該方法時,新的 length 屬性值將被返回。 數組push之後返回的是length,而不是新的數組,如果不清楚這點,在使用過程中回遇到很大的坑。 順帶記一下其他幾個數組的方法返回 ...
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; // 2
arr.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()
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()
slice()
方法返回一個從開始到結束(不包括結束)選擇的數組的一部分淺拷貝到一個新數組對象,原始數組不會被修改。
返回值:
一個含有提取元素的新數組
總結:
開頭和結尾添加都是返回數組的長度;
開頭和結尾的刪除都是返回刪除的元素;
splice()返回被刪除的元素;
concat返回新的數組;
slice返回提取的數組;