JS数组
JS数组:属于一组特殊的 对象
JS其实没有真正的数组,只适用对象来模拟数组~
数组
典型数组
- 元素的数据类型相同
- 使用连续的内存储存
- 通过数字下标获取元素
![129001692c54a7f51b24bab6f70528e6.png](https://i-blog.csdnimg.cn/blog_migrate/e07d62fdd493ee5ec42036c7befea602.png)
但JS的数组不是这样 (用key:value模拟)
- 元素的数据类型可以不同(可以是字符串,可以是数字等)
- 内存不一定是连续的(对象是随机储存的,储存在Heap堆)
- 不能通过数字下边,而是通过字符串下标
这意味这数组可以有任何的Key
![2662634ed402cbbf9cda7394cae4906a.png](https://i-blog.csdnimg.cn/blog_migrate/8d9906420cc48fc9632824b4616d5ccf.png)
举例:
let arr = [1,2,3]
arr['xxx'] = 2
![beddf6b5e15321c3bf37d18cca590a91.png](https://i-blog.csdnimg.cn/blog_migrate/6ddbd62de506097b90048e1828181046.png)
拓展:可以运用对象的方法来查看数组
查看对象的索引(keys)
![d798e0363db9e5bf9e81427fb7e07723.png](https://i-blog.csdnimg.cn/blog_migrate/e823a202682e8713d10252e6be76e003.png)
查看对象的值(values)
![e045e8284b91130f68b4cea120a89db5.png](https://i-blog.csdnimg.cn/blog_migrate/b44230775d8be519f7143852ed5c1c46.png)
创建一个数组
- 新建
let arr = [1,2,3] //简单写法
let arr = new Array(1,2,3) //正规写法
let arr = new Array(3) //长度(只有一个参数是为长度)
- 转化(数组)
数组有逗号间隔
let arr = '1,2,3'.split(',')
![da115dd5b76af1540610f5fe068e8da9.png](https://i-blog.csdnimg.cn/blog_migrate/11081ac25284aa05bf4d0a6c7dee5714.png)
数组没有逗号间隔
let arr = '123'.split('')
![1b2f15cf3d23f6b1ccf5737aa4c4f4d0.png](https://i-blog.csdnimg.cn/blog_migrate/a8e13e354ec5e1073e2b71382761735b.png)
把不是字符串的尝试变成数组
Array.from('123')
![b1018edddda8c201c54bce46b131092c.png](https://i-blog.csdnimg.cn/blog_migrate/7b55367c76c544ce68cc2ad93bb12990.png)
拓展:Array.from
Array.from( { 0:'a',1:'b',2:'c',length:3 } )
![1539659c28849669fadc1518c30cf89d.png](https://i-blog.csdnimg.cn/blog_migrate/24cb097377a57a2f2a160e2d75131bd6.png)
Array.from转化数组是有限制的(不是所有东西都可以变成数组)
- 有下标
- 有length(长度值)