JS數(shù)組初學(xué)者簡(jiǎn)解(作者拔發(fā)而作)

首先我們得知道數(shù)組是什么块促?(是什么呢?_?)

  • 數(shù)組是一種數(shù)據(jù)類型
  • 數(shù)組可以儲(chǔ)存不同數(shù)據(jù)類型的數(shù)據(jù)(啥都可以存哦职抡!(●'?'●))

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

怎么創(chuàng)建數(shù)組呢脊串?有兩個(gè)方法直接量法構(gòu)造函數(shù)法

直接量法

const arr = ['zhangsan','lisi']

構(gòu)造函數(shù)法

定義:構(gòu)造函數(shù)就是構(gòu)造對(duì)象的一種模具(函數(shù))
構(gòu)造函數(shù)的語(yǔ)法:任何一個(gè)構(gòu)造函數(shù)在構(gòu)造對(duì)象的時(shí)候必須遵循固定語(yǔ)法(這里必須記住哦研铆,是固定的用法!(╯▔皿▔)╯):

new Array()
new String()
new Boolean()
new Number()

//new : 新的(new一個(gè)對(duì)象劳较,new一個(gè)新數(shù)組)

Array()(沒(méi)看錯(cuò)驹止,就是這樣用(●ˇ?ˇ●),平常我們都是用直接法做的(づ ̄3 ̄)づ╭?~)

var arr = new Array('hehe',1314,true)

數(shù)組的特點(diǎn)

1. 數(shù)組是有索引的

  • 數(shù)組的第一個(gè)值的索引是0
  • 第二個(gè)是1
  • ......
  • 最后一個(gè)的是數(shù)組的長(zhǎng)度length-1

2. 數(shù)組的比較

  • 簡(jiǎn)單數(shù)組類型比較值(內(nèi)存中的值)
  • 復(fù)雜數(shù)據(jù)類型比較址(內(nèi)存中的地址)
  • 簡(jiǎn)單數(shù)據(jù)類型復(fù)制是復(fù)制值
  • 復(fù)雜數(shù)據(jù)類型復(fù)制是復(fù)制址

如何訪問(wèn)數(shù)組

使用方括號(hào)加下標(biāo)訪問(wèn)數(shù)組元素(別用錯(cuò)了观蜗,是下標(biāo)臊恋,別第一個(gè)就用1,第一個(gè)得用0墓捻!╰(‵□′)╯)

const arr = [1,2,3]
arr[0] //1
arr[1] //2
arr[2] //3
arr[3] //undefined

遍歷數(shù)組的方法

  1. for 循環(huán)
var arr = ['hello',200,true,[1,2,3],null]
        for(let i = 0 ; i < arr.length ; i++){
            console.log(Array.isArray(arr[i]))
        }
  //先返回3次false 再返回1次true 最后返回一次false
  1. forEach
var arr = ['hello',200,true,[1,2,3],null]
        arr.forEach(x=>{
            console.log(Array.isArray(x))
        })
    //先返回3次false 再返回1次true 最后返回一次false

array.length

定義:返回?cái)?shù)組的長(zhǎng)度
語(yǔ)法:

  1. 主人是數(shù)組
  2. length是屬性抖仅,沒(méi)有參數(shù)

返回值:數(shù)組的長(zhǎng)度

  • 注意: length-1是任何一個(gè)數(shù)組最后一個(gè)元素
  • []空數(shù)組的length是0

數(shù)組的方法

很多的欸,我肯定不會(huì)一下給你全部列出來(lái)啊砖第,可以去W3C(https://www.w3school.com.cn/jsref/jsref_obj_array.asp)去看哦(●'?'●)

Array.isArray

定義:Array.isArray()方法用來(lái)檢測(cè)是否是數(shù)組
語(yǔ)法:

Array.isArray(value)
  • value:是要檢測(cè)的值

返回值:

  • true:如果是數(shù)組撤卢,返回true
  • false:如果不是數(shù)組,返回false

實(shí)例

var arr = [[1,2],'12']
console.log(Array.isArray(arr[0])) //返回true
console.log(Array.isArray(arr[1])) //返回false

array.push()

定義:array.push()用來(lái)在數(shù)組末尾添加元素
語(yǔ)法:

array.push('iteam1','iteam2','iteam3'....,'iteamx')
  • 可以添加多個(gè)元素
    返回值:返回新數(shù)組的長(zhǎng)度
    實(shí)例
var arr = [1,2]
arr.push(3)
console.log(arr) 

結(jié)果

6

array.pop()

定義:刪除數(shù)組的最后一個(gè)元素
語(yǔ)法:

array.pop() //無(wú)參數(shù)

返回值:返回刪除元素
實(shí)例

var arr = [1,2,3]
var str = arr.pop()
console.log(str) //返回3

array.unshift()

定義:再數(shù)組前添加元素
語(yǔ)法:

array.unshift('iteam1','iteam2'...,'iteamX') //可添加多個(gè)元素

返回值:返回新數(shù)組長(zhǎng)度
實(shí)例

var arr = [1,2]
arr.unshift(3)
console.log(arr) // 返回3

array.shift()

定義:刪除數(shù)組的第一個(gè)元素
語(yǔ)法:

array.shift() //無(wú)參數(shù)
  • 無(wú)參數(shù)

返回值:返回刪除元素
實(shí)例

var arr = [1,2,3]
var str = arr.shift()
console.log(str) //返回1

array.join()

定義:將數(shù)組通過(guò)連接符連接成一個(gè)字符串
語(yǔ)法:

array.join('鏈接符') //這個(gè)連接符啥都可以是

返回值:返回一個(gè)新的字符串

實(shí)例

var arr = ['apple','banner']
console.log(arr.join('and'))

結(jié)果

'appleandbanner'

array.reverse()

定義:反轉(zhuǎn)數(shù)組中元素的順序
語(yǔ)法:

array.reverse()  //無(wú)參數(shù)
  • 無(wú)參數(shù)

返回值:反轉(zhuǎn)后的數(shù)組
實(shí)例

var arr = ['hello',200,true,[1,2,3],null]
console.log(arr.reverse()) 

結(jié)果

['null',[1,2,3],true,200,'hello'] //相反

array.sort()

定義:可以對(duì)數(shù)組的元素按照字母或者數(shù)字進(jìn)行升序或降序重新排列,默認(rèn)是升序排列
注意:
● sort默認(rèn)是升序
● sort默認(rèn)是按照unicode編碼排序
語(yǔ)法:

array.sort()

參數(shù):
function(a,b){return a - b}
sort()方法比較兩個(gè)值時(shí)梧兼,將值發(fā)送給比較函數(shù)放吩,根據(jù)返回的(負(fù)、零羽杰、正)值對(duì)值進(jìn)行排序渡紫。

返回值:新數(shù)組
實(shí)例1

var arr = [2,,'a',5,0,'6',3,'7','t',1,]
console.log(arr.sort(
            arr.sort((a,b)=>{
            return a > b
        } 
        ))//升序排列

array.indexOf()

定義 :在數(shù)組中查詢指定元素。
注意:indexOf()只會(huì)返回第一次出現(xiàn)的位置
語(yǔ)法:

array.indexOf('x')

返回值:返回它的位置忽洛,未找到返回-1
實(shí)例

var arr = [1,2,3,4]
console.log(arr.indexOf(2))
//返回值為1
console.log(arr.indexOf(9))
//返回值為-1

array.concat()

定義:用于鏈接兩個(gè)或者多個(gè)數(shù)組
語(yǔ)法:

arr.concat(arr1,arr2,...,arrx)

返回值:返回一個(gè)新數(shù)組腻惠,不會(huì)修改原有數(shù)組
實(shí)例

var arr1= ["S60", "S90"];
var arr2 = ["XC40", "XC60", "XC90"];
var Volvo = arr1.concat(arr2);

array.slice()

定義:截取選取的部分?jǐn)?shù)組形成一個(gè)新的數(shù)組
語(yǔ)法:

arr.slice(start,end)

注釋:start為開始會(huì)獲取,end為結(jié)束欲虚,不會(huì)獲取
返回值:返回一個(gè)新的數(shù)組,不會(huì)改變?cè)袛?shù)組
實(shí)例

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3);
//citrus = ['Orange','Lemon']

array.forEach()

  • array:數(shù)組
  • for:為了......
  • Each:每一個(gè)

定義:方法按順序?yàn)閿?shù)組中的每個(gè)元素調(diào)用一次函數(shù)

語(yǔ)法:

array.forEach(function(currentValue, index, arr), thisValue)
  • function:是一個(gè)函數(shù)
    • 當(dāng)執(zhí)行forEach()方法的時(shí)候悔雹,每個(gè)數(shù)組元素都會(huì)調(diào)用一次函數(shù)參數(shù)
    • 在調(diào)用函數(shù)的時(shí)候复哆,可以傳入以下參數(shù):
      • currentValue:數(shù)組中的每一個(gè)元素
      • index:表示數(shù)組的索引
      • arr:表示當(dāng)前數(shù)組
  • thisValue:設(shè)置this指向

返回值:undefined

實(shí)例:

var arr = [1,2,3]

arr.forEach(function(x,index,arr){
            arr[index] = x+3
        })
console.log(arr)//返回[4,5,6]

array.map()

定義:方法按順序?yàn)閿?shù)組中的每個(gè)元素調(diào)用一次函數(shù)

語(yǔ)法:

array.map(function(currentValue, index, arr), thisValue)
  • function:是一個(gè)函數(shù)
    • 當(dāng)執(zhí)行map()方法的時(shí)候,每個(gè)數(shù)組元素都會(huì)調(diào)用一次函數(shù)參數(shù)
    • 在調(diào)用函數(shù)的時(shí)候腌零,可以傳入以下參數(shù):
      • currentValue:數(shù)組中的每一個(gè)元素
      • index:表示數(shù)組的索引
      • arr:表示當(dāng)前數(shù)組
  • thisValue:設(shè)置this指向

返回值:數(shù)組

實(shí)例:

var arr = [1,2,3]

console.log(arr.map(function(x,index,arr){
        return   arr[index] = x+3
        }))//返回[4,5,6]

array.filter()

定義:方法創(chuàng)建數(shù)組梯找,且按順序?yàn)閿?shù)組中的每個(gè)元素調(diào)用一次函數(shù)

語(yǔ)法:

array.filter(function(currentValue, index, arr), thisValue)
  • function:是一個(gè)函數(shù)
    • 當(dāng)執(zhí)行filter()方法的時(shí)候,每個(gè)數(shù)組元素都會(huì)調(diào)用一次函數(shù)參數(shù)
    • 在調(diào)用函數(shù)的時(shí)候益涧,可以傳入以下參數(shù):
      • currentValue:數(shù)組中的每一個(gè)元素
      • index:表示數(shù)組的索引
      • arr:表示當(dāng)前數(shù)組
  • thisValue:設(shè)置this指向

返回值: 包含所有通過(guò)測(cè)試的數(shù)組元素的數(shù)組锈锤。如果沒(méi)有元素通過(guò)測(cè)試,則返回一個(gè)空數(shù)組。

實(shí)例:

var arr = [1,2,3]

console.log(arr.filter(function(x,index,arr){
        return   x > 2
        }))//返回[3]

array.every()

定義:檢測(cè)數(shù)組中的所有元素是否通過(guò)測(cè)試

語(yǔ)法:

array.every(function(currentValue, index, arr), thisValue)
  • function:是一個(gè)函數(shù)
    • 當(dāng)執(zhí)行every()方法的時(shí)候久免,每個(gè)數(shù)組元素都會(huì)調(diào)用一次函數(shù)參數(shù)
    • 在調(diào)用函數(shù)的時(shí)候浅辙,可以傳入以下參數(shù):
      • currentValue:數(shù)組中的每一個(gè)元素
      • index:表示數(shù)組的索引
      • arr:表示當(dāng)前數(shù)組
  • thisValue:設(shè)置this指向

返回值: true 或者 false

實(shí)例:

var arr = [1,2,3]

console.log(arr.every(function(x,index,arr){
        return   x > 2
        }))//返回false

array.find()

定義:為數(shù)組內(nèi)每個(gè)元素進(jìn)行一次函數(shù)

語(yǔ)法:

array.find(function(currentValue, index, arr), thisValue)
  • function:是一個(gè)函數(shù)
    • 當(dāng)執(zhí)行find()方法的時(shí)候,每個(gè)數(shù)組元素都會(huì)調(diào)用一次函數(shù)參數(shù)
    • 在調(diào)用函數(shù)的時(shí)候阎姥,可以傳入以下參數(shù):
      • currentValue:數(shù)組中的每一個(gè)元素
      • index:表示數(shù)組的索引
      • arr:表示當(dāng)前數(shù)組
  • thisValue:設(shè)置this指向

返回值:返回?cái)?shù)組中通過(guò)第一次測(cè)試的元素记舆,沒(méi)有就返回undefined

實(shí)例:

var arr = [1,2,3]

console.log(arr.find(function(x,index,arr){
        return   x >= 2
        }))//返回[2]

array.findIndex()

定義:按順序?yàn)閿?shù)組中的每個(gè)元素調(diào)用一次函數(shù)

語(yǔ)法:

array.findIndex(function(currentValue, index, arr), thisValue)
  • function:是一個(gè)函數(shù)
    • 當(dāng)執(zhí)行findIndex()方法的時(shí)候,每個(gè)數(shù)組元素都會(huì)調(diào)用一次函數(shù)參數(shù)
    • 在調(diào)用函數(shù)的時(shí)候呼巴,可以傳入以下參數(shù):
      • currentValue:數(shù)組中的每一個(gè)元素
      • index:表示數(shù)組的索引
      • arr:表示當(dāng)前數(shù)組
  • thisValue:設(shè)置this指向

返回值: 返回?cái)?shù)組中第一次通過(guò)測(cè)試的元素的索引泽腮。沒(méi)有返回-1

實(shí)例:

var arr = [1,2,3]

console.log(arr.findIndex(function(x,index,arr){
        return  x > 2
        }))//返回2

array.reduce()

定義:從左到右,將數(shù)組中的值進(jìn)行縮減到一個(gè)值

語(yǔ)法:

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
  • 參數(shù)function(total, currentValue, currentIndex, arr) 必須
    • total 必須
    • currenValue 必須

返回值:返回相減之后得到的值

實(shí)例:

var numbers = [175, 50, 25];
console.log(numbers.reduce(function(a,b){
    return a - b
})
            //打印 100

array.some()

定義:檢測(cè)數(shù)組中的一些元素是否通過(guò)測(cè)試

語(yǔ)法:

array.some(function(currentValue, index, arr), thisValue)
  • function:是一個(gè)函數(shù)
    • 當(dāng)執(zhí)行some()方法的時(shí)候衣赶,每個(gè)數(shù)組元素都會(huì)調(diào)用一次函數(shù)參數(shù)
    • 在調(diào)用函數(shù)的時(shí)候诊赊,可以傳入以下參數(shù):
      • currentValue:數(shù)組中的每一個(gè)元素
      • index:表示數(shù)組的索引
      • arr:表示當(dāng)前數(shù)組
  • thisValue:設(shè)置this指向

返回值: true 或者 false

實(shí)例:

var arr = [1,2,3]

console.log(arr.some(function(x,index,arr){
        return   x > 2
        }))//返回 true
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市府瞄,隨后出現(xiàn)的幾起案子豪筝,更是在濱河造成了極大的恐慌,老刑警劉巖摘能,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件续崖,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡团搞,警方通過(guò)查閱死者的電腦和手機(jī)严望,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)逻恐,“玉大人像吻,你說(shuō)我怎么就攤上這事「绰。” “怎么了拨匆?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)挽拂。 經(jīng)常有香客問(wèn)我惭每,道長(zhǎng),這世上最難降的妖魔是什么亏栈? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任台腥,我火速辦了婚禮,結(jié)果婚禮上绒北,老公的妹妹穿的比我還像新娘黎侈。我一直安慰自己,他們只是感情好闷游,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布峻汉。 她就那樣靜靜地躺著贴汪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪休吠。 梳的紋絲不亂的頭發(fā)上扳埂,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音蛛碌,去河邊找鬼聂喇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蔚携,可吹牛的內(nèi)容都是我干的希太。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼酝蜒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼誊辉!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起亡脑,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤堕澄,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后霉咨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛙紫,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年途戒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了坑傅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡喷斋,死狀恐怖唁毒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情星爪,我是刑警寧澤浆西,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站顽腾,受9級(jí)特大地震影響近零,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜崔泵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一秒赤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧憎瘸,春花似錦、人聲如沸陈瘦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至锅风,卻和暖如春酥诽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背皱埠。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工肮帐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人边器。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓训枢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親忘巧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子恒界,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

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

  • 數(shù)組是什么? 數(shù)組是一種儲(chǔ)存多個(gè)值的數(shù)據(jù)類型數(shù)組是由方括號(hào)包裹的多個(gè)值砚嘴。其中每個(gè)值稱為數(shù)組元素十酣。數(shù)組是一種由簡(jiǎn)單數(shù)...
    天天涯閱讀 269評(píng)論 0 1
  • 本文會(huì)先介紹所有數(shù)組方法,再詳細(xì)介紹其中的reduce(引申閱讀:redux中的compose函數(shù))际长,接著介紹in...
    zpkzpk閱讀 401評(píng)論 0 1
  • 數(shù)組的排序 sort()方法排序問(wèn)題耸采。 sort()方法是Array原型鏈上自帶的方法。 默認(rèn)排序順序是根據(jù)字符串...
    無(wú)跡落花閱讀 583評(píng)論 1 0
  • 一工育、數(shù)組遍歷 Array提供了5種遍歷操作數(shù)組元素的方法虾宇,有map、forEach翅娶、filter文留、some、eve...
    Da_xiong閱讀 150評(píng)論 0 0
  • Javascript有很多數(shù)組的方法竭沫,有的人有W3C的API燥翅,還可以去MDN上去找,但是我覺(jué)得API上說(shuō)的不全蜕提,M...
    頑皮的雪狐七七閱讀 4,063評(píng)論 0 6