ES6数组:
1、map(映射:一 一对应):如成绩分数对应及格与否、用户ID对应用户的一条记录;
<script>
let arr = [1, 2, 3]
/* let result = arr.map(function(item) {
return item * 2;
}); */
// let result = arr.map(item => item * 2);
// alert(result); //结果 2,4,6
let score = [64, 96, 51, 23, 15, 7];
let result = score.map(item => item >= 60 ? '及格' : '不及格');
alert(score); //结果 64,96,51,23,15,7
alert(result); //结果 及格,及格,不及格,不及格,不及格,不及格
</script>
2、reduce(汇总:一组数据出来一个总数):如总数、平均数等
<script>
let arr = [56, 45, 16, 546];
// 算总数和平均数
let result = arr.reduce(function(tmp, item, index) {
//三个参数的含义:tmp中间结果(第一次没有中间结果,因此取数组的第一个数作为中间结果);item数组中的每一个数值(56,45,16,546);index数组的下标(从1开始)
if (index != arr.length - 1) {
// 注意:if里的arr若是用this会发生指向错误(因为此时的this已经变成了window对象)
return tmp + item; //结果 663
} else {
return (tmp + item) / arr.length; //结果 165.75
}
});
alert(result);
</script>
3、filter(过滤器、管道)
<script>
// 例子一
let arr = [54, 10, 65, 415, 568, 45, 46, 54, 65];
// 能被5整除的留下,不能的去掉
/* let result = arr.filter(item => {
// 注意:此处%取模本身就是一个布尔值
if (item % 5 == 0) {
return true;
} else {
return false;
}
}); */
let result = arr.filter(item => item % 5 == 0);
alert(result); //结果 10,65,415,45,65
// 例子二
/* let arr = [{
title: '电脑',
price: 327448
}, {
title: '手机',
price: 45346
}, {
title: '鼠标',
price: 335
}, {
title: 'U盘',
price: 34
}, {
title: '键盘',
price: 547
}]
let result = arr.filter(json => json.price >= 666);
console.log(result); //结果 Array(2) 0:price: 327448title: "电脑" 1:price: 45346title: "手机" */
</script>
4、forEach(循环、迭代)
<script>
let arr = [1, 2, 3, 4, 5];
arr.forEach((item, index) => {
alert(index + ':' + item)
})
</script>
ES7
ES7数组:
1、数组includes:检查数组是否包含有指定的数据,有则返回true,反之返回false
2、数组:
keys:所有的key拿出来
values:所有的value拿出来
entries实体:所有的键值对key-value拿出来
for···of:循环数组value;json是一个不可迭代的对象(of不支持json,因此不能循环出value)
for···in:循环数组下标key(从0开始)和jsonkey(属性)
ES7求幂:**相当于Math.pow()
padStart(在字符串前面补指定多少个空格或指定符号,如0)/padEnd(后补)
数组、参数等语法容忍度增大:[1,2,3]=>[1,2,3,]
generator—yield 需要runner、不能用箭头函数=》async-await不依赖外部的runner、可以写成箭头函数
<script>
async function show(){
await;
}
</script>