1. 會改變自身的方法
array.copyWithin(target, start [, end = this.length])
- target(必需):從該位置開始替換數據。如果爲負值,表示倒數。
- start(可選):從該位置開始讀取數據,默認爲 0。如果爲負值,表示倒數。
- end(可選):到該位置前停止讀取數據,默認等於數組長度。如果爲負值,表示倒數。
就是從target開始替換,替換的數據來自於本身,並從start開始讀取,end結束讀取,將讀取的數據覆蓋從targt開始,有幾個換幾個
[1, 2, 3, 4, 5, 6].copyWithin(4, 0, 1);
// 從5開始替換,讀取到的數據爲1,那麼只將5替換成1 輸出 [1, 2, 3, 4, 1, 6]
[1, 2, 3, 4, 5, 6].copyWithin(4, 0, 5);
// 從5開始替換,讀取到的數據爲【1,2,3,4],那麼只將5替換成1 輸出 [1, 2, 3, 4, 1, 2]
array.fill(value [,statrt = 0[, end = this.length]])
同上 start end 不填寫默認爲全部填充
[1, 2, 3, 4, 5, 6].fill(null, 0, 12) // [null, null, null, null, null]
[1, 2, 3, 4, 5, 6].fill(null, 0, 1) // [null,2,3,4,5]
array.pop()
刪除數組中最後一個元素,並且返回這個元素
array.push(element1, …elementN)
添加一個或者多個元素到末尾,並且返回新數組的長度
array.reverse()
前後顛倒數組中的元素,第一個元素會變成最後一個
array.shift()
刪除數組的第一個元素,並且返回這個元素
array.unshift(element1, …elementN)
在數組的開頭插入一個或者多個元素 並返回數組的新長度
array.sort(fn(a,b))
排序 傳入函數(a, b)的返回值 小於 0 a會在b前面,等於0 位置不變,大於0 a在b後面
array.splice(start, deleteCount[, item1[, item2…])
- start: 開始操作的索引
- deleteCount: 要移除的數組元素的個數
- itemN: 要添加進數組的元素,如果不指定,則splice只刪除數組元素
2. 不會改變自身的方法
array.concat(value1, value2…)
將傳入的數組或者非數組值合併,組成一個新的數組並返回
array.includes(searchElement, [, fromIndex])
第一個參數爲查找的值,第二個參數爲從原數組中的什麼索引位置開始查找 默認爲0 注意此處使用的是 === 嚴格匹配
[1, 2, 3, 4, 5, 6].includes(1); // true 從索引爲0 開始找包含1 返回ture
[1, 2, 3, 4, 5, 6].includes(1, 1); // false 從索引爲1 開始找 不含1 返回 false
array.indexOf(searchElement[, fromIndex = 0])
同 includes 第一個匹配上的索引值
array.lastIndexOf(searchElement[, fromIndex = arr.length - 1])
同 indexOf 最後一個匹配上的索引值
array.join([separator = ',’])
將
,
替換爲指定的字符串,並返回字符串
array.slice([begin = 0 [, end = this.length - 1]])
淺複製
array.toString()
每一項的元素都toString() 組合返回值
[1, 2, {a: 1}].toString(); // 1,2,[object Object]
array.toLocaleString()
同上 只不過每一項調用的是 toLocaleString
3. 遍歷方法
array.forEach((v, i, a) => {})
v: 每一項的值 i每一項的索引 a 當前這個數組 無返回值
array.entries()
返回 Array Iterator 對象 Iterator參考 iterator
var arr = ["a", "b", "c"];
var eArr = arr.entries();
console.log(eArr.next().value); // [0, "a"]
console.log(eArr.next().value); // [1, "b"]
console.log(eArr.next().value); // [2, "c"]
array.keys()
返回索引的iterator
array.every(callback(v, i, a){})
返回一個bool, 每一項的callback返回的值都爲true 時返回true 否則返回false,注意,其中如果有某一次返回了false 循環將不再繼續
[1, 2, 3, 4].every(item => {
console.log('====');
return item < 2;
}); // 輸出兩次 ==== 返回false
array.some()
某一項爲true 即返回true,注意:其中如果有某一次返回了true,循環將不再繼續
array.filter((v, i, a) => {})
將callback返回true的保留
array.find((v, i, a) =>{})
找到滿足的條件的元素,並返回該值。注意一旦找到了,循環將不再繼續
array.map((v, i, a) => {})
返回新的數組
array.reduce(callback[, initialValue]) >
如果initialValue沒有值那麼prev 爲數組中的第一個值,next爲數組中的第二個值
[0, 1, 2, 3, 4, 5].reduce((p, v, i , a) => {
return p + v
}) // 15
array.reduceRight()
同上