什么是数组:
数组就是专门用于存储一组数据的
如何创建数组:
var 变量名称 = new Array(size);
操作数组:
变量名称[索引号] = 需要存储的数据
注意点:
- 如果数组对于的索引中没有储存值,默认储存的就是undefined
- JavaScript中访问了数组中不存在的索引不会报错,会返回undefined
- JavaScript中数组的存储空间不够时会自动扩容
- JavaScript的数组可以存储不同的数据类型
- JavaScript中数组分配的存储空间不一定是连续的
在各大浏览器也对JavaScript的数组分配存储空间做了优化
- 如果存储的都是相同的数据类型,那么会尽量分配连续的存储空间
- 如果存储的不是相同的数据类型,那么就不分配连续的存储空间
创建函数的方式:
通过构造函数创建数组:
var 变量名称 = new Array(size); //创建一个指定大小的函数
var 变量名称 = new Array(); // 创建一个空数组
var 变量名称 = new Array(date1,date2,date3,.....); //含有数据的数组
通过字面量创建数组:
var 变量名称 = []; // 创建一个空数组
var 变量名称 = [date1,date2,date3,....]; //创建一个空数组
// var arr = new Array(3);
arr[0] = "num1";
arr[2] = "num2";
arr[3] = "num3";
JavaScript数组的解构赋值:
- 什么的是数组的解构赋值?
解构赋值是ES6中新增的一种赋值方式
- 数组解构的注意点:
- 数组解构赋值赋值中,等号左边的格式必须和等号右边的格式一模一样,才能完全解构
- 在数组的解构赋值中,左边的个数可以和右边的个数不一样
- 在数组的解构赋值中,右边的个数也可以和左边的个数不一样
- 在数组的解构赋值中,右边的个数和左边的个数不一样时,可以给左边的指定默认值
- 在数组的解构赋值中,还可以使用ES6中新增的扩展运算符来打包剩余的数据
- 在数组的解构赋值中,如果使用了扩展运算符,那么扩展运算符只能写在最后
var [a, b, c, d] = [1, 23, 45, [6, 7]];
console.log("a=" + a);
console.log("b=" + b);
console.log("c=" + c);
console.log("d=" + d);
// 在数组的解构中,右边的个数和左边的个数不一样时,可以给左边的指定默认值
var [a, b = 666, c = 888] = [1];
console.log("a=" + a);
console.log("b=" + b);
console.log("c=" + c);
// 在数组的解构赋值中,还可以使用ES6中新增的扩展运算符来打包剩余的数据
// ES6中新增的扩展运算符: ...
var [a,...b] = [1,3,4,6];
console.log(a);
console.log(b); //以数组的方式打包输出 剩余的数据
数组的增删改查:
var arr["a","b","c"];
// 查
console.log(arr[1]); // 输出b
// 改
arr[1] = "m";
console.log(arr[1]); // 将b改为m,输出m
arr.splice(1,2,"d","e"); //从第一个元素开始,替换两个内容 d和e
//增加
arr.push("x","y","z"); // 在数组最后一个元素添加元素 push会返回新增数字的长度
arr.unshift("P","Q") //和push方法一样,会将新增数组的长度返回
// 删除
arr.pop(); //移除数组的最后一条数据,并且将删除的数据返回
arr.shift(); //删除数组最前面的一条数据,并且将删除的数据返回
arr.splice(1,1); //从索引为1的元素开始删除一条数据
数组常用的方法:
- 清空数组
var arr = [1,2,3,4,5];
arr= [];
arr.length = 0;
arr.splice(0,arr,length);
- 将数组转换为字符串
var arr = [1,2,3,4,5];
arr.toSting();
- 将数组转换为指定格式的字符串
var arr = [1,2,3,4,5];
//join方法默认情况下如果没有传递参数,就是调用toString();
//join方法如果传递了参数,就会将传递的参数最为元素的连接符号
arr.join("+");
- 将两个数组拼接为一个数组
// 数组不能用加号拼接,如果使用加号进行拼接会先转成字符串再拼接
var arr = [1,2,3,4,5];
var arr1 = [6,7,8,9];
arr.concat(arr1); //将两个数组拼接到一起返回一个新的数组,concat不会修改原数组
// ES6 数组拼接的方法
var res = [...arr, ...arr1];
- 将数组中的内容进行反转
var arr = [1,2,3,4,5];
arr.reverse(); // 会修改原有的数组
- 截取数组中指定范围内容
var arr = [1,2,3,4,5];
arr.slice(1,3); //slice方法包含起始位置,不包含结束位置,且不会对原有数组修改
- 查找元素在数组的位置
var arr = [1,2,3,4,5,3];
// index()如果找到了指定的元素就会返回对应的位置,如果没找到就会返回-1
arr.indexOf(3); // 默认从左到右执行,一旦找到就会立即停止查找
arr.lastIndexOf(3); //默认从右到左执行,一旦找到就会立即停止查找
- 判断数组中是否包含某个元素
//可以通过indexOf和lastIndexOf的结果,判断是-1即可
var arr = [1,2,3,4,5];
arr.indexOf(6); // -1
arr.lastIndexOf(6); // -1
//ES6新增的方法
arr.includes(6); // false
arr.includes(2); //ture