(一)操作方法
push
: 從數(shù)組末尾添加項,返回數(shù)組長度
unshift
: 從數(shù)組頭添加項郁副,返回數(shù)組長度
pop
: 從數(shù)組末尾刪除項碾篡,返回被移除的項
shift
: 從數(shù)組頭刪除項铡羡,返回被移除的項
concat
: 組合兩個數(shù)組拭嫁,原來的數(shù)組不會被改變
slice
: 接受一個或兩個參數(shù),從數(shù)組中截取部分項浮入,返回新的數(shù)組龙优,原來的數(shù)組不會被改變
注意: 如果結(jié)束位置小于初始位置則返回空的數(shù)組;如果參數(shù)為負值事秀,則位置是 參數(shù)+數(shù)組長度
splice
=> 有三種基本用法:
- 刪除項: 第一個參數(shù)表示開始刪除項的位置彤断,第二個參數(shù)表示要刪除多少項
- 插入項: 第一個參數(shù)表示開始刪除項的位置,第二個參數(shù)表示要是出多少項(這里是0易迹,表示不刪除),第三個參數(shù)表示要插入的項宰衙,如果要插入多個項,可以添加第四個睹欲,第五個參數(shù)
- 替換項: 第一個參數(shù)表示開始刪除項的位置供炼,第二個參數(shù)表示要刪除多少項,第三個參數(shù)表示要替換的項窘疮,如果替換的項有多個袋哼,同上。
(二)排序
sort
=> 先把數(shù)組的每個值用 toString()
方法轉(zhuǎn)成字符串考余,然后再比較
所以要想得到正確的順序先嬉,需要給sort傳遞一個比較函數(shù)轧苫,推薦一個比較常用的比較函數(shù):
function compare(v1,v2){
return v2 - v1
}
用法:sort(compare)
(三)位置
indexOf
=> 查找某個項在數(shù)組中的位置楚堤,從頭查詢疫蔓。
lastIndexOf
=> 查找某個項在數(shù)組中的位置,從末尾查詢身冬。
以上兩個方法都接受兩個參數(shù)衅胀,第一個參數(shù)表示要查詢的項,第二個參數(shù)表示開始查詢位置(可選)
(四)迭代方法
五個迭代方法接受兩個參數(shù)酥筝,一個是要數(shù)組對象滚躯,一個是運行在數(shù)組每一項上的函數(shù)
-
every()
=> 如果函數(shù)每一項都返回true,則返回值為true
var numbers = [1,2,3,4]
var result = numbers.every(function(item, index, array){
return (item > 2)
})
console.log(result) // false
2.some()
=> 如果函數(shù)中任一項返回true嘿歌,則返回值為true
var numbers = [1,2,3,4]
var result = numbers.some(function(item, index, array){
return (item > 2)
})
console.log(result) // true
3.filter()
=> 函數(shù)中返回值為true的項組成新數(shù)組
var numbers = [1,2,3,4]
var result = numbers.filter(function(item, index, array){
return (item > 2)
})
console.log(result) // [3,4]
4.map()
=> 每次調(diào)用函數(shù)的結(jié)果組成新的數(shù)組
var numbers = [1,2,3,4]
var result = numbers.map(function(item, index, array){
return item * 2
})
console.log(result) // [2,4,6,8]
5.forEach()
=> 這個方法沒有返回值
var numbers = [1,2,3,4]
numbers.map(function(item, index, array){
// 執(zhí)行某些操作
})
6.reduce()
和reduceRight()
,其實這兩個方法不是迭代方法掸掏,為了方便我整理到了一起,解釋起來比較麻煩,看列子會明白:
// 計算一個數(shù)組的求和
var arr = [1,2,3,4]
var sum = arr.reduce(function(prev,cur,index,array){
return prev + cur
})
console.log(sum) // 10