创建数组
有三种方式:
-
let arr = [1,2,3] -
let arr = new Array(1,2,3) -
let arr = new Array(3)
还有别的方式创建数组:
转化:
-
第一种:
let str = '1,2,3' str.split(',') // split 意思是 用什么来分隔这个函数 -
第二种:
let str2 = '123' str2.split('') // 用空字符 -
第三种:
// 还有一种就是最新的 es 标准提供的 Array.from('123') // 它会把不是字符串的东西 尝试变成字符串
这个 Array.from 不是所有东西都可以变成数组,必须要满足两个条件:
一:要有下标
二:要有 length
另一种:伪数组
let divList = document.querySelectorAll('div')
// 把divArray 就是把 不是数组的东西,通过 Arry.from 变成数
let divArray = Array.from(divLsit)
console.dir(divArray)
还可以通过合并得到新的数组
> 还有什么方法呢!
```javascript
let arr3 = [3,3,3]
let arr4 = [4,4,5]
arr3.concat(arr4) // 就是连接的意思
```
```javascript
let arr1 = ['1','2','3','4','5','6']
arr1.slice(2) // 从第二个元素开始
```
把它复制一份:
```javascript
let arr6 = arr5.slice(0) //从你的第零个开始切过来,经常用来复制一个数组
```
注意 JS 只提供浅拷贝
Q&A
Q:什么是伪数组?
A: 一个数组原型链中没有那些数组所共有属性
增删改查
删:
let arr =['a','b','c']
delete arr['0']
arr
如果删掉第一个,长度还是 3个
非常的神奇长度并不会变
如果把 中间的 b 和 c 都删掉,长度还是3 这种只有长度但是没有对应的下标这种叫做
JS 稀疏数组
这其实是对象的删法 是不太推荐的!!!
Q:如果把 length 删了呢!
let arr = [1,2,3,4,5]
arr.length = 2
arr // 把后面全删了
忠告:不要随便改 length
有三种方法删元素
- 删除头部的元素:
arr.shift()
就是把另外一个往外弹出出去啦!
let arr1 = [1,2,3]
arr1 // [2,3]
- 删除尾部的元素:
arr.pop()
如果要删除最后一个元素 用 pop
let arr2 = [1,2,3]
arr1.pop() // [1,2] 3 就弹出来啦!
-
删除中间的元素:
arr.splice(index,1) // index表示 下标第几个 1 表示 删几个 arr.splice(index,1,'x') // x 表示 在删除位置添加 'x' arr.splice(index,1,'x','y')
arr.splice 也可以代表前面两个
一个对象提供的函数就叫做api