数组以及数组常用方法
1.什么是数组?
数组就是专门用来存储一组数据的
它不属于基本数据类型,这是初学者经常会犯的错误,基本数据类型在ES6之前只有Number/String/Boolean/Null/undefined
数组属于引用数据类型(对象类型)
2.如何创建数组?
第一种是通过new的方法创建一个数组的对象
let 变量名称 = new Array(数组长度);
第二种是简便写法
let 变量名称 = [];
3.基本的操作数据
那么既然有了数组,数组是一个存放数据的地放,那么怎么操作里面的数据呢
怎么往数组中存放数据?
变量名称[索引号] = 需要存储的数据;
怎么从数组中获取数据?
变量名称[索引号];
4.数组的注意点
5.数组的遍历
1.for 循环
使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显
2.for in 循环
虽然能遍历但是不建议使用,因为它的输出类型是String类型
3.for of 循环
可以正确响应break,continue,return语句
4.forEach 循环
遍历数组中的每一项,没有返回值,对原数组有影响,不支持IE
5.map循环
map的回调函数中支持return返回值;return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了)
首先是直接遍历数组
返回一个新的数组
let arr = [1, 2, 3, 4];
var result = arr.map((value, index, array) => {
return value * 10;
});
console.log(result); //-->[10,20,30,40]; 原数组拷贝了一份,并且进行了修改
console.log(arr);//-->[1,2,3,4];原数组没有发送修改
6.filter 遍历
遍历数组
不会改变原始数组,返回新数组
作为条件判断返回一个新的数组
7.every 遍历
不会改变原始数组,返回新数组
every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true,不然就是返回false
实际用例 判断数组中每个对象的age是否都大于2 返回true 或者false
let obj = [{ age: 1 }, { age: 3 }, { age: 4 }, { age: 5 }, { age: 6 }, { age: 7 }]
let newarr = obj.every(item => item.age >= 2)
console.log(newarr) //false
8.some 遍历
跟every的区别就是every需要全部满足要求才返回true,some只需要满足一项就返回true
some()是对数组中每一项运行指定函数,如果该函数对任一项返回true,则返回true
9. reduce
reduce()方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。
reduce可以有5个参数
10.find
find()方法返回数组中符合测试函数条件的第一个元素。否则返回undefined
11.key value entries
ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历
6.数组的增删改查
7.数组的常用方法