JavaScript 數(shù)組方法 筆記

JavaScript 數(shù)組創(chuàng)建

一維數(shù)組

var arr = []   // 空數(shù)組
var arr = [1,2,3,4]  // 數(shù)組字面量

var arr = new Array()   // 空數(shù)組
arr[0] = 1
arr[1] = 2

var arr = new Array(20) //創(chuàng)建一個有20個空間大小的數(shù)組 
var arr = new Array(1,2,3,4) //創(chuàng)建數(shù)組,包含四個元素

二維數(shù)組

var arr = new Array()
arr[0] = [1,2,3]
arr[1] = [3,2,1]
// 一般多維數(shù)組會用循環(huán)(比如for)來構建

數(shù)組方法

arr = [1,2,3,4,5]

arr.join(separator)——連接
返回以separator為間隔的字符串,原數(shù)組不變

arr.join("-")   //返回值1-2-3-4-5

arr.push(item,[items])——末尾添加
可輸入多個元素 ,修改數(shù)組本身,返回 修改后數(shù)組長度

arr.push(4,3,2,1)   //返回9

arr.pop()——刪除末尾元素
無參數(shù),返回被刪除元素,數(shù)組長度改變

arr.pop() // 返回 5

arr.shift()——刪除第一個元素
返回被刪除元素,數(shù)組長度改變

arr.shift()  // 返回1

arr.unshift(item,[items])——數(shù)組首位添加元素
可添加多個元素,返回增加后的數(shù)組長度

arr.unshift(-1,0)  // 返回7

arr.reverse()——反轉數(shù)組
返回被反轉順序的數(shù)組,原數(shù)組改變

arr.reverse()  //返回[ 5, 4, 3, 2, 1 ]

arr.concat(items,[items])——連接元素
參數(shù)任意,無參數(shù)時返回原數(shù)組副本,否則將參數(shù)添加進數(shù)組副本末尾并返回該副本,原數(shù)組不變
注意:若參數(shù)有數(shù)組,一位數(shù)組將被劃分為獨立的項再進行添加,二維數(shù)組的情況只有第一層數(shù)組會被拆分,第二層數(shù)組以數(shù)組的形式被添加

arr.concat()  //返回[ 5, 4, 3, 2, 1 ]
arr.contact("last",["add","and",[11,11,11]])  
//返回   [ 1, 2, 3, 4, 5, 'last', 'add', 'and', [ 11, 11, 11] ]

arr.sort([compareFunction])——排序
無參數(shù)時默認升序排序,添加compareFunction比較函數(shù),函數(shù)中將兩個值進行比較,第一個值位置在前時返回負數(shù),相等返回0,靠后返回正數(shù)。

降序(示例)
function compareFunction(value1,value2){
  if(value1 > value2) return -1
  if(value1 < value2) return 1
  if(value1 == value2) return 0
}
arr.sort(compareFunction)  //返回[ 5, 4, 3, 2, 1 ]

arr.slice(startIndex,endIndex)——截取數(shù)組
截取開始下標和結束下標包含的項,不包括結束下標的項,省略結束下標參數(shù)時默認截取到最后一個字符串
結束下標為負時,設結束下標為-1,則截取的最后一個數(shù)的位置是倒數(shù)第2個(2 = |-1|+1)

arr.slice(1)     //返回[ 2, 3, 4, 5 ]
arr.slice(1,4)     //返回[ 2, 3, 4 ]
arr.slice(1,-1) //返回[ 2, 3, 4 ]

arr.splice()——切片——刪除、插入、替換
始終返回被刪除的項
刪除——arr.splice(stratIndex,length) 刪除從下標為startIndex開始的length個項

arr.splice(0,2) //刪除前兩項  返回[ 1, 2 ]

插入——arr.splice(start,0,[items])——在start處添加【items】,刪除0項

arr.splice(1,0,-1,-1) //在第二位添加兩個項,-1,返回[]

替換——在被刪除的地方插入新值就可以了arr.splice(start,length,[items])

arr.splice(0,2,-1,-1)  //

arr.indexOf(item,start) arr.lastIndexOf(item,start)——查找
輸入要查找的項和開始查找的起點位置索引【可選】,首次匹配成功返回匹配項索引并結束匹配,否則返回-1

arr.indexOf(5)  //返回4

數(shù)組遍歷

forEach
arr.forEach(function(item,index,arrSelf){})
無返回值,原數(shù)組不變
給定匿名遍歷函數(shù),包含三個參數(shù)——每一次遍歷的數(shù)組項,該項的索引,數(shù)組本身

arr.forEach(function(item,index,arrSelf){
console.log("index:"+index+"  value:"+item)
})
輸出:
index:0  value:1
index:1  value:2
index:2  value:3
index:3  value:4
index:4  value:5

map
arr.map(function(item,index){return})**——映射
遍歷數(shù)組每一項,每一次返回值組成新的數(shù)組,原數(shù)組不變

arr.map(function(item,index){
  console.log("index="+index+"__"+"item="+item)
  return item-1
})    
輸出
index=0__item=1
index=1__item=2
index=2__item=3
index=3__item=4
index=4__item=5
[ 0, 1, 2, 3, 4 ]

filter
arr.filter(function(item,index){reutn ture/false})——過濾
返回滿足過濾條件組成的數(shù)組,原數(shù)組不變

arr.filter(function(item,index){
    return item>2
})
返回[3,4,5]

every()
arr.every(function(item,index){return true/false}):判斷數(shù)組中每一項都是否滿足條件,只有所有項都滿足條件,才會返回true。

arr.every(function(item,index){
console.log("index="+index+"__"+"item="+item)
return item>2
})
返回
index=0__item=1
false

some
arr.some(function(item,index){return false/true})
判斷數(shù)組中是否存在滿足條件的項,只要有一項滿足條件,就會返回true。

arr.some(function(item,index){
console.log("index="+index+"__"+"item="+item)
return item>1
})
返回
index=0__item=1
index=1__item=2
true

歸并
reduce()和 reduceRight()
給定一個函數(shù)和一個歸并基礎值,每一次返回的值作為下一次的prevSub

var sum = arr.reduceRight(function(prevSum, cur, index, array){
return prevSum * cur;
},10);
console.log(sum); //1200

運算過程
10 * 5 * 4 * 3 * 2* 1 = 1200
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 由于最近都在freecodecamp上刷代碼,運用了很多JavaScript數(shù)組的方法,因此做了一份關于JavaS...
    2bc5f46e925b閱讀 2,201評論 0 16
  • 數(shù)組方法 下面開始介紹數(shù)組的方法,數(shù)組的方法有數(shù)組原型方法,也有從object對象繼承來的方法,這里我們只介紹數(shù)組...
    祈求者閱讀 418評論 0 2
  • JavaScript中創(chuàng)建數(shù)組有兩種方式,第一種是使用 Array 構造函數(shù): vararr1 = newArra...
    寄魚予海與你閱讀 563評論 0 0
  • 數(shù)組的定義 數(shù)組是按序號排列的一組值,每個值的位置都有編號(從0開始)。數(shù)組本質上是一種特殊的對象。它的鍵名是按(...
    Allin_Lin閱讀 677評論 0 0
  • 從行業(yè)小白到區(qū)塊鏈布道者的自我認知修行之路 以下故事純屬真實經(jīng)歷,一個與比特幣“三來三往”經(jīng)歷過牛熊、期貨爆過倉的...
    簡居廟堂閱讀 2,189評論 0 8

友情鏈接更多精彩內容