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 ...