ES6中数组扩展了map、reduce、filter、forEach等方法
1、map 一对一,可改变返回值
2、reduce 汇总, 索引下标从1开始
3、filter过滤 根据返回的true或者false保留或不保留数据
4、forEach 迭代
案例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>数组方法扩展</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
// 1、map
// 一对一,可改变返回值
let arr = [1, 2, 3, 4, 5]
let result = arr.map((item, index)=>{
//console.log(item, index);
return item > 3 ? '哈哈' : '嘻嘻'
})
// ["嘻嘻", "嘻嘻", "嘻嘻", "哈哈", "哈哈"]
console.log(result);
// 2、reduce 汇总
// 索引下标从1开始
// 计算arr相加
// 每次返回的tmp 中间值, item当前值, index索引
let sum = arr.reduce((tmp, item, index)=>{
// console.log(tmp, item, index);
return tmp + item
})
// 汇总:15
console.log(sum);
// 计算arr平均
// let avg = arr.reduce((tmp, item, index)=> index === arr.length - 1 ? (tmp + item) / arr.length : (tmp + item))
let avg = arr.reduce((tmp, item, index)=>{
return index === arr.length - 1 ? (tmp + item) / arr.length : (tmp + item)
})
// 平均值:3
console.log(avg);
// 3、filter过滤
// 根据返回的true或者false保留或不保留数据
let result2 = arr.filter((item, index)=>{
// console.log(item, index);
return item > 3 ? true : false
})
// [4, 5]
console.log(result2);
//4、forEach 迭代
arr.forEach((item, index)=>{
console.log(item, index);
})
</script>
</head>
<body>
</body>
</html>