本人作为前端小白,在此浅谈数组,毫无技术可言,纯粹辅助自己记忆加总结,首先在一开始,我就记住了一句话,JS其实没有真正的数组,只是用对象模拟数组..接下来就开始我的流水账记录了.
一: 新建数组
let arr =[1,2,3]
let arr = new Array(1,2,3)
上面直截了当就新建一个数组,不过我们还可以通过其他的方法然后得到一个数组
1. concat 合并两个数组,得到一个新数组
例子:
let arr1 = [3,3,3]
let arr2 = [4,4,4,4]
arr3.concat(arr4)
上面会得到一个[3,3,3,4,4,4,4]的新数组,并且原来的数组不会改变,依旧存在.
**2. slice 截取一个数组的一部分,得到一个新数组 **
- arr1.slice(1)//从第二个元素开始截取
- arr1.slice(0)//全部截取,一般用来复制数组
注意:JS只提供浅拷贝
例子1:
let arr1 = [1,2,3,4,5,6,7,8,9]
arr1.slice(2)
得到数组 arr1.slice(2)=[3,4,5,6,7,8,9]
例子2:
let arr1 = [1,2,3,4,5,6,7,8,9]
let arr2 = arr1.slice(0)
得到 arr2 = [1,2,3,4,5,6,7,8,9]
二:转化数组
- 利用split来转化数组,为了方便理解,我决定举例子来解释
let str = '1,2,3'
str.split(',')
let str2 ='123'
str2.split('')
都会得到数组
- 还有一种方法就是Array.from也可转化为数组,但是是需要两个条件
- 这个对象有0,1,2,3类似的下标
- 含有lenght这个属性
例子:
Array.from('123')
反面例子:
Array.from(123)
Array.from(ture)
Array.from({name:'liao'})
Array.from({0:'a',1:'b',2:'c',3:'d'})
三:真伪数组
嗨,兄弟萌听好了,没有所有数组共有属性的数组就是伪数组.伪数组的原型链中并没有数组原型
let divList = document.querySelector('div')是伪数组
知道为什么嘛?
看console界面显示的原型链中并没有数组原型的.不过我们是可以把他改为真数组的,使用Array.from.还记得这个吗?看下面例子
let divList = document.querySelectorAll('div')
let divArray = Array.from(divList)
console.dir(divArray)
搞定~