// push pop shift unshift 数组的首尾增删
// reverse 翻转数组
// join 将数组连接成字符串
// sort 排序
// concat 拼接 slice 提取
// splice 可以实现任意位置的增删改
// indexOf lastIndexOf 判断数组是否有某个值 有返回下标 没有返回-1
// ES5 新增的数组方法
let arr = [1, 2, 3, 4, 5];
// 1、forEach => 遍历
// 返回值 :无
arr.forEach(function (value, index) {
// value:遍历过程中的每一个数组数据
// index:遍历的下标
console.log(value, index);
});
// ----------------------------------------------------------------
// 2、 map(映射) => 遍历 + 返回
// 返回值:新数组
// 假如需求:求数组里面的每一项的平方 并得到这个返回的新数组
let newArr = arr.map(function (value, index) {
return value * value;
});
console.log(newArr);
// ----------------------------------------------------------------
// 3、 filter() => 过滤 + 返回一个新数组 => 数组的内容是通过函数测试()
let array = [100, 29, 39, 29, 40, 60, 28];
// 需求:过滤出数组中大于60分的数据
let newArr1 = array.filter(function (value, index) {
if (value >= 60) {
return true;
} else {
return false;
}
});
console.log(newArr1);
let arr2 = [11, 35, 52, 88, 100];
// 需求: 删除数组里面为35的内容
let newArr2 = arr2.filter(function (value, index) {
return value != 35;
});
console.log(newArr2);
// ----------------------------------------------------------------
// 4、reduce => 累计运算 => 返回累计结果
let arr3 = [1, 2, 3, 4, 5];
// 将每一次的return的结果重新还给sum 不仅仅可以做数值的求和 逻辑就是每次return的结果给sum
let newArr3 = arr3.reduce(function (sum, value, index) {
return sum + value;
}, 0);
console.log(newArr3);
// ----------------------------------------------------------------
// 5、 every 和 some
// every 所有人都满足才满足 返回的是布尔值
// every()
// 需求:检测数组里面是否所有人的分数都大于80分
let arr4 = [80, 23, 92, 84, 83, 100];
let isAllGood = arr4.every(function (value, index) {
return value >= 80;
});
console.log(isAllGood);
// 6、 some(value,index) some 一个满足就满足 返回的是布尔值
// 需求 数组里有一个是满分 就返回true
let isHasFullScore = arr4.some(function (value, index) {
return value === 100;
});
console.log(isHasFullScore);
// 7、array.from(伪数组)
// 将伪数组变成真数组
// Array.from是一个静态方法, 不需要实例去调用.
// APi当中所有的集合都是伪数组 , 所谓的伪数组 就是不是数组生出来的,而且不能使用真数组的方法
// Array.from(DOM对象);