constructor() copyWithin() entries()
indexOf() join() lastIndexOf()
reduce() reduceRight() reverse()
splice() toLocaleString() unshift()
Array.prototype.push
push 用於向數組的末尾添加一個或多個元素,並返回新的長度;改變原數組的長度,將新的值添加在數組的尾部
var arr=["red","black","Momen"]; arr.push('hi') // 4 console.log(arr) // ["red","black","Momen","hi"]
Array.prototype.pop
刪除一個數組中的最后的一個元素,並且返回這個元素
var arr=["red","black","Momen"]; arr.pop() // "Momen"
Array.prototype.concat
concat()方法用於合並兩個或多個數組。
此方法不改變原數組,而是返回一個新數組。
var arr=["red","black","Momen"]; var arr2=["hi"] arr.concat(arr2) // ["red","black","Momen","hi"]
Array.prototype.constructor
constructor 屬性返回對象的構造函數
例:
JavaScript 數組 constructor 屬性返回 function Array() { [native code] }
JavaScript 數字 constructor 屬性返回 function Number() { [native code] }
JavaScript 字符串 constructor 屬性返回 function String() { [native code] }
Array.prototype.copyWithin
copyWithin() 方法用於從數組的指定位置拷貝元素到數組的另一個指定位置中。
array.copyWithin(target, start, end)
target | 必需。復制到指定目標索引位置 |
start | 可選。元素復制的起始位置 |
end | 可選。停止復制的索引位置 (默認為 array.length)。如果為負值,表示倒數 |
Array.prototype.entries(),keys()和values()
三個都是es6新增的方法
用於遍歷數組。它們都返回一個遍歷器對象,可以用for...of循環進行遍歷
唯一的區別是:keys()是對鍵名的遍歷
values()是對鍵值的遍歷
entries()是對鍵值對的遍歷
var arr=["red","black","Momen"]; for(let item of arr.keys()){ console.log('keys():',item) } for(let item of arr.values()){ console.log('values():',item) } for(let item of arr.entries()){ console.log('entries():',item) }
結果:
Array.prototype.every
every() 方法用於檢測數組所有元素是否都符合指定條件(通過函數提供)。
every() 方法使用指定函數檢測數組中的所有元素:
- 如果數組中檢測到有一個元素不滿足,則整個表達式返回 false ,且剩余的元素不會再進行檢測。
- 如果所有元素都滿足條件,則返回 true。
Array.prototype.fill
fill() 方法用於將一個固定值替換數組的元素。
Array.prototype.map(),filter(),some(),every(),forEach()
map():返回一個新的Array,每個元素為調用func的結果
filter():返回一個符合func條件的元素數組
some():返回一個boolean,判斷是否有元素是否符合func條件
every():返回一個boolean,判斷每個元素是否符合func條件
forEach():沒有返回值,只是針對每個元素調用func
Array.prototype.find(),findIndex()
find()函數用來查找目標元素,找到就返回該元素,找不到返回undefined。
findIndex()函數也是查找目標元素,找到就返回元素的位置,找不到就返回-1
[1, 2, 3, 4].find((value, index, arr) => {})
查找函數有三個參數。
value:每一次迭代查找的數組元素。
index:每一次迭代查找的數組元素索引。
arr:被查找的數組。
Array.prototype.includes
includes() 方法用來判斷一個數組是否包含一個指定的值,如果是返回 true,否則false。
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, NaN].includes(NaN); // true
Array.prototype.indexOf
indexOf() 方法可返回某個指定的字符串值在字符串中首次出現的位置。
[1,2,3,4].indexOf(3) // 2
Array.prototype.join
join() 方法用於把數組中的所有元素連接成一個字符串。
元素是通過指定的分隔符進行分隔的
[1,2,3].join('@') // 1@2@3
Array.prototype.lastIndexOf
在整個一維 Array 中搜索指定的對象,並返回最后一個匹配項的索引。
[2,2,1,1,4,5,3,1,2].lastIndexOf(1) // 7
Array.prototype.reduce(),reduceRight()
reduce()
方法接收一個函數 callback
作為累加器(accumulator),數組中的每個值(從左到右)開始合並,最終為一個值
array.reduce(callback[, initialValue])
function callback(accumulator, currentValue, currentIndex, array){}
accumulator
: 上一次調用回調返回的值,或者是提供的初始值(initialValue)currentValue
: 數組中當前被處理的數組項currentIndex
: 當前數組項在數組中的索引值array
: 調用reduce()
方法的數組
而initialValue
作為第一次調用callback
函數的第一個參數
var arr = [0,1,2,3,4]; arr.reduce(function (accumulator, currentValue, currentIndex, array) { return accumulator+ currentValue; }); // 10
reduceRight()
方法的功能和 reduce()
功能是一樣的,不同的是 reduceRight()
從數組的末尾向前將數組中的數組項做累加
Array.prototype.reverse
reverse() 方法用於顛倒數組中元素的順序
該方法會改變原來的數組,而不會創建新的數組
Array.prototype.shift
shift() 方法用於把數組的第一個元素從其中刪除,並返回第一個元素的值。
如果數組是空的,那么 shift() 方法將不進行任何操作,返回 undefined 值。請注意,該方法不創建新數組,而是直接修改原有的 arrayObject。
Array.prototype.slice
slice() 方法可從已有的數組中返回選定的元素,不改變原數組。
arrayObject.slice(start,end)
返回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。
Array.prototype.sort
sort()
方法對數組的元素做原地的排序,並返回這個數組。 sort 排序可能是不穩定的。默認按照字符串的Unicode碼位點(code point)排序
Array.prototype.splice
splice() 方法向/從數組中添加/刪除項目,然后返回被刪除的項目。
該方法會改變原始數組
arrayObject.splice(index,howmany,item1,.....,itemX)
index:必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。
howmany:必需。要刪除的項目數量。如果設置為 0,則不會刪除項目。
item1, ..., itemX:可選。向數組添加的新項目。
splice() 方法可刪除從 index 處開始的零個或多個元素,並且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。
如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。
Array.prototype.toLocaleString
把數組轉換為本地字符串。
首先調用每個數組元素的 toLocaleString() 方法,然后使用地區特定的分隔符把生成的字符串連接起來,形成一個字符串
["red","black","green"].toLocaleString() // red,black,green
Array.prototype.toString
可把數組轉換為字符串,並返回結果(不會改變原數組)
Array.prototype.unshift
unshift() 方法可向數組的開頭添加一個或更多元素,並返回新的長度。
注意: 該方法將改變數組的數目。
提示: 將新項添加到數組末尾,可以使用 push() 方法。