前言
數(shù)組是一種特殊對(duì)象。js中并沒有真正的數(shù)組,只是用對(duì)象模擬數(shù)組。
查看對(duì)象屬性的方法在數(shù)組身上也同樣適用。值得注意的是:數(shù)組的下標(biāo)類型為字符串,并不是數(shù)字。
典型數(shù)組和js數(shù)組區(qū)別
類似c/c++的典型數(shù)組特征如下:
- 元素的數(shù)據(jù)類型相同
- 使用連續(xù)的內(nèi)存存儲(chǔ)
- 通過數(shù)字下標(biāo)獲取元素
js的數(shù)組
- 元素的數(shù)據(jù)類型可以不同
- 內(nèi)存不一定是連續(xù)的(對(duì)象是隨機(jī)存儲(chǔ)的)
- 不能通過數(shù)字下標(biāo)訪問,而是通過字符串下標(biāo)進(jìn)行訪問。(這意味著數(shù)組可以有任何key)
上圖說明的是最后一點(diǎn):數(shù)組可以有任何key,想證明數(shù)組的下標(biāo)為字符串,用 Object.keys(arr)
創(chuàng)建數(shù)組
創(chuàng)建數(shù)組有兩種方式,分別是:
let arr=[1,2,3] let arr=new Array(1,2,3)
字符串轉(zhuǎn)化為數(shù)組 split() Array.from()
可以用這兩種方法將字符串轉(zhuǎn)化為字符串?dāng)?shù)組。
偽數(shù)組
沒有數(shù)組共有屬性的數(shù)組就是偽數(shù)組(偽數(shù)組的原型鏈中并沒有數(shù)組的原型)
偽數(shù)組中并沒有push,pop等方法(通過 console.dir(divList)
可看出),我們可以通過 Array.from()
來轉(zhuǎn)化
轉(zhuǎn)化之后就可以成功的push啦
合并兩個(gè)數(shù)組
- concat()
此方法不會(huì)改變?cè)瓟?shù)組
let arr1=[1,2,3] let arr2=[4,5,6] arr1.concat(arr2)//[1,2,3,4,5,6] arr1//[1,2,3] arr2//[4,5,6]
截取數(shù)組
- slice()
此方法不會(huì)改變?cè)瓟?shù)組
let arr=[1,2,3,4,5,6] arr.slice(3) //[4,5,6] arr//[1,2,3,4,5,6]
刪數(shù)組元素
刪頭部元素: arr.shift()
arr會(huì)被修改,并返回被刪元素
let arr=[1,2,3,4,5,6] arr.shift()//1 arr//[2, 3, 4, 5, 6]
刪尾部元素: arr.pop()
arr會(huì)被修改,并返回被刪元素
let arr=[1,2,3,4,5,6] arr.shift()//6 arr//[1, 2, 3, 4, 5]
刪中間:
arr.splice(index,1)
//刪除index的第一個(gè)元素,返回被刪元素 arr.splice(index,1,"x")
//在刪除位置添加"x" ,返回被刪元素 arr.splice(index,1,"x","y")
//在刪除位置添加"x"和"y",返回被刪元素
let arr=[1,2,3,4,5,6,7,8,9] //刪除元素4 arr.splice(3,1)//4 arr//[1, 2, 3, 5, 6, 7, 8, 9] let arr=[1, 2, 3, 5, 6, 7, 8, 9] //刪除下標(biāo)3并添加3.5和4 arr.splice(2,1,3.5,4)//3 arr//[1, 2, 3.5, 4, 6, 7, 8, 9]
查看數(shù)組元素
查看屬性
- Object.keys(arr)
- Object.values(arr)
let arr=[1,2,3,4,5] arr.x="xxx" Object.keys(arr)//["0", "1", "2", "3", "4", "x"] Object.values(arr)// [1, 2, 3, 4, 5, "xxx"]
for in
循環(huán)
查看只含數(shù)字的元素
for循環(huán)
forEach循環(huán)
查看某個(gè)元素是否在數(shù)組里
arr.indexOf(item)
存在則返回?cái)?shù)組索引,否則返回-1
let arr=[1,2,3,4,5,6] arr.indexOf(2)//1 arr.indexOf(7)//0
使用條件查找元素
//查找第一個(gè)為偶數(shù)的元素 let arr=[1,2,3,4,5,6] arr.find(item=>item%2===0)//2 //查找第一個(gè)為偶數(shù)的下標(biāo) let arr=[1,2,3,4,5,6] arr.findIndex(item=>item%2===0)//1
增加數(shù)組中的元素
在尾部添加: arr.push(item1,item2)
let arr=[3,4,5,6] arr.push(7,8,9) arr//[3,4,5,6,7,8,9]
頭部添加: arr.unshift(item1,item2)
let arr=[3,4,5,6] arr.unshift(1,2,3) arr//[1, 2, 3, 3, 4, 5, 6]
在中間添加: arr.splice(index,0,"x")
let arr=[1,2,3,4,5,6,7] //在下標(biāo)為2的位置添加3.33,3.44 arr.splice(2,0,3.33,3.44)//[1, 2, 3.33, 3.44, 3, 4, 5, 6, 7]
總結(jié)
到此這篇關(guān)于js數(shù)組的基本使用總結(jié)的文章就介紹到這了,更多相關(guān)js數(shù)組使用內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://juejin.cn/post/6918316914569641997