JS数组(基础一)

132 阅读2分钟

本人作为前端小白,在此浅谈数组,毫无技术可言,纯粹辅助自己记忆加总结,首先在一开始,我就记住了一句话,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]

二:转化数组

  1. 利用split来转化数组,为了方便理解,我决定举例子来解释
let str = '1,2,3'
str.split(',')
let str2 ='123'
str2.split('')

都会得到数组

  1. 还有一种方法就是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)

搞定~