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)來構(gòu)建

數(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()——反轉(zhuǎn)數(shù)組
返回被反轉(zhuǎn)順序的數(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ù)組
截取開始下標和結(jié)束下標包含的項裸违,不包括結(jié)束下標的項掖桦,省略結(jié)束下標參數(shù)時默認截取到最后一個字符串
結(jié)束下標為負時,設結(jié)束下標為-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)——查找
輸入要查找的項和開始查找的起點位置索引【可選】趁舀,首次匹配成功返回匹配項索引并結(jié)束匹配赖捌,否則返回-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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市悦析,隨后出現(xiàn)的幾起案子寿桨,更是在濱河造成了極大的恐慌,老刑警劉巖强戴,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亭螟,死亡現(xiàn)場離奇詭異,居然都是意外死亡骑歹,警方通過查閱死者的電腦和手機预烙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來道媚,“玉大人扁掸,你說我怎么就攤上這事∽钣颍” “怎么了谴分?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長镀脂。 經(jīng)常有香客問我牺蹄,道長,這世上最難降的妖魔是什么薄翅? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任沙兰,我火速辦了婚禮,結(jié)果婚禮上翘魄,老公的妹妹穿的比我還像新娘僧凰。我一直安慰自己,他們只是感情好熟丸,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布训措。 她就那樣靜靜地躺著,像睡著了一般光羞。 火紅的嫁衣襯著肌膚如雪绩鸣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天纱兑,我揣著相機與錄音呀闻,去河邊找鬼。 笑死潜慎,一個胖子當著我的面吹牛捡多,可吹牛的內(nèi)容都是我干的蓖康。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼垒手,長吁一口氣:“原來是場噩夢啊……” “哼蒜焊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起科贬,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤泳梆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后榜掌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體优妙,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年憎账,在試婚紗的時候發(fā)現(xiàn)自己被綠了套硼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡胞皱,死狀恐怖邪意,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情朴恳,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布允蚣,位于F島的核電站于颖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嚷兔。R本人自食惡果不足惜森渐,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦蠕趁、人聲如沸锣光。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春埠况,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棵癣。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工辕翰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人狈谊。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓喜命,卻偏偏與公主長得像沟沙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子壁榕,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

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