JS學(xué)習(xí)筆記_數(shù)組篇

(一)操作方法

push: 從數(shù)組末尾添加項(xiàng),返回?cái)?shù)組長(zhǎng)度
unshift : 從數(shù)組頭添加項(xiàng),返回?cái)?shù)組長(zhǎng)度
pop : 從數(shù)組末尾刪除項(xiàng),返回被移除的項(xiàng)
shift : 從數(shù)組頭刪除項(xiàng),返回被移除的項(xiàng)
concat : 組合兩個(gè)數(shù)組,原來的數(shù)組不會(huì)被改變
slice : 接受一個(gè)或兩個(gè)參數(shù),從數(shù)組中截取部分項(xiàng),返回新的數(shù)組,原來的數(shù)組不會(huì)被改變

注意: 如果結(jié)束位置小于初始位置則返回空的數(shù)組;如果參數(shù)為負(fù)值,則位置是 參數(shù)+數(shù)組長(zhǎng)度

splice => 有三種基本用法:

  • 刪除項(xiàng): 第一個(gè)參數(shù)表示開始刪除項(xiàng)的位置,第二個(gè)參數(shù)表示要?jiǎng)h除多少項(xiàng)
  • 插入項(xiàng): 第一個(gè)參數(shù)表示開始刪除項(xiàng)的位置,第二個(gè)參數(shù)表示要是出多少項(xiàng)(這里是0,表示不刪除),第三個(gè)參數(shù)表示要插入的項(xiàng),如果要插入多個(gè)項(xiàng),可以添加第四個(gè),第五個(gè)參數(shù)
  • 替換項(xiàng): 第一個(gè)參數(shù)表示開始刪除項(xiàng)的位置,第二個(gè)參數(shù)表示要?jiǎng)h除多少項(xiàng),第三個(gè)參數(shù)表示要替換的項(xiàng),如果替換的項(xiàng)有多個(gè),同上。

(二)排序

sort => 先把數(shù)組的每個(gè)值用 toString()方法轉(zhuǎn)成字符串,然后再比較
所以要想得到正確的順序,需要給sort傳遞一個(gè)比較函數(shù),推薦一個(gè)比較常用的比較函數(shù):

function compare(v1,v2){
return v2 - v1
}
用法:sort(compare)

(三)位置

indexOf => 查找某個(gè)項(xiàng)在數(shù)組中的位置,從頭查詢。
lastIndexOf => 查找某個(gè)項(xiàng)在數(shù)組中的位置,從末尾查詢。

以上兩個(gè)方法都接受兩個(gè)參數(shù),第一個(gè)參數(shù)表示要查詢的項(xiàng),第二個(gè)參數(shù)表示開始查詢位置(可選)

(四)迭代方法

五個(gè)迭代方法接受兩個(gè)參數(shù),一個(gè)是要數(shù)組對(duì)象,一個(gè)是運(yùn)行在數(shù)組每一項(xiàng)上的函數(shù)

  1. every() => 如果函數(shù)每一項(xiàng)都返回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ù)中任一項(xiàng)返回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的項(xiàng)組成新數(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() => 這個(gè)方法沒有返回值

var numbers = [1,2,3,4]
 numbers.map(function(item, index, array){
  // 執(zhí)行某些操作
})

6.reduce()reduceRight() ,其實(shí)這兩個(gè)方法不是迭代方法,為了方便我整理到了一起,解釋起來比較麻煩,看列子會(huì)明白:

// 計(jì)算一個(gè)數(shù)組的求和
var arr = [1,2,3,4]
var sum = arr.reduce(function(prev,cur,index,array){
  return prev + cur
})
console.log(sum)  // 10
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容