为什么要使用数组?
- 需要存储一系列的值
- 需要快速的存储和取值
-
创建数组
var arr = [];
-
向数组中插入数据:
// 通过索引值去插入元素 arr[0] = 1; arr[1] = 2; // 索引值必须连续,避免形成稀疏数组导致空位。
-
数组的增删改查
// 增 改 查 arr[0] = 'aaa'; // 删除 delete arr[0]; // 有副作用,会造成数组空洞。
delete 其实是给对象使用的一个关键字。
数组是特殊类型的对象。
arr['hello'] = 'hello,world';
-
数组的length属性
数组的length属性是可写可读的。
-
length属性值比最大的索引值大1。
-
如果length的值设置为0,则可以清空数组。
-
如果length的值设置的比数组的正常长度还要长,就会形成空位。
-
-
数组的遍历。
-
for循环 while循环 do..while循环
-
forEach
-
for..in
-
-
数组可以存储任意类型的值。
var arr = [
{a:1, b:2},
null,
undefined,
true,
false,
100,
'aaaa',
function() {}
];
数组里面如果存储了数组,那么整个数组就可以称为多维数组
。
var arr = [
['a', 'b'],
['c', 'd', [
'x', 'y'
]]
];
// console.log(arr);
// 如果想要拿到x
console.log( arr[1][2][0] );
// 拍平数组 -- 把多维数组变成一维数组
console.log( arr.flat(2) );
-
数组中经常使用的方法:
-
push() 向数组的最后插入一个元素
-
unshift() 向数组的最前面插入一个元素
-
pop()删除数组最后一个元素
-
shift()删除数组的第一个元素
-
reverse() 反转数组
-
forEach() 遍历数组
-
splice() 替换 删除 插入
-
find() 查找数组的指定元素
-
findIndex() 查找数组指定元素的索引值
-
concat()把多个数组合并为一个数组
-
split() 会把字符串切割成数组。
-
reverse() 会把数组反转
Math.random() 生成随机数
Math.floor() 向下取整
Math.ceil() 向上取整
-
数组是一种特殊类型的对象 ,所以有一些对象的特性,比如,js要求对象的key必须是字符串。
数组的key是一个number。但是在看不到的地方,js会把数组的数字的key变成字符串的key。
-
拍平数组
把多维数组变成一维数组。
arr.flat()
-
数组的解构赋值
var arr1 = ['a','b']; var arr2 = ['c','d']; var arr3 = [ ...arr1, ...arr2 ]; //使用三个 . 来表示
-