新增4个方法
map 映射 一个对一个 定义数组:
let arr = [12, 5, 8]
map应用初版:
let result = arr.map(function (item) {
return item*2
})
console.log(result)//结果:[ 24, 10, 16 ]
简写版本:
let result2 = arr.map(item=>item*2) // 简写
console.log(result2)//结果:[ 24, 10, 16 ]
还可以:
let score = [18, 86, 88, 24]
let result3 = score.map(item => item >= 60 ? '及格' : '不及格')
console.log(result3)//结果:[ '不及格', '及格', '及格', '不及格' ]
这三个版本主要是领悟一下map+箭头函数的快乐,
这种快乐应该在只有一个值,并且只有一句执行语句的时候拥有
reduce 汇总 一堆出来一个 用于比如,算个总数,算个平均
reduce函数中自带三个值的含义:定义数组:
·
temp:初值取arr[0],即数组第一项
item:数组中每一项
index:序号,索引号
var arr = [1, 3, 5, 7]
求每项相加总和:
var result = arr.reduce(function (tmp, item, index) {
//tmp 上次结果,item当前数,index次数1开始
console.log(tmp, item, index)
return tmp + item
})
console.log(result) // 输出总和
求平均值:
var result = arr.reduce(function (tmp, item, index) {
if (index != arr.length - 1) { // 不是最后一次
return tmp + item // 前期先累加
} else {
//如果是最后一次,那么,除以总数求平均值
return (tmp + item)/arr.length
}
})
console.log(result)// 输出平均值
filter 过滤器 保留为true的 定义数组:
var arr = [12, 4, 8, 9]
直接来简写版本:
var result = arr.filter(item => (item % 3 === 0) ? true : false)
console.log(result)
// 还能更简单--体会一下思想
var result = arr.filter(item => item % 3 === 0)
console.log(result)
var arr = [
{ title: '苹果', price: 10 },
{ title: '西瓜', price: 20 },
]
var result = arr.filter(json => json.price >= 20)
console.log(result)
forEach 循环迭代 【前端|ES6数组新方法(map,reduce,filter,foreach)】比较简单,不说了
var arr = [12, 4, 8, 9]
var result = arr.forEach(item => console.log(item))
var result = arr.forEach((item, index)=>console.log(item, index))
推荐阅读
- jQuery基础|jQuery的基础操作
- openlayer|vue+openLayers入门教程
- 前端基础|【Web 三件套】个人简单博客系统页面搭建(附源码)
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- 接口|axios接口报错-参数类型错误解决
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- vue.js|vue中使用axios封装成request使用
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法