石川es6课程---7、数组

一、总结

一句话总结:

^ 主要就map(映射:一个对一个),reduce(汇总:一堆出来一个),filter  过滤器,forEach 循环(迭代) 四个方法
^ 使用形式就是方法里面接匿名函数作为参数:例如let result = arr.map(function (item) {

 

 

二、数组



-   map    (映射:一个对一个)
```
[112,58,6,990]
[及格,不及格,不及格,及格]
let arr=[12,5,8]
// let res=arr.map(function(item){
// return 2*item
// })
//es6简化版
let res=arr.map(item => item*2)
alert(res)
//数据映射
let score=[50,66,70,49,85]
let res=score.map(item => item>=60?'及格':'不及格')
console.log(score,res)
```
- reduce (汇总:一堆出来一个)
1. 算总数,算平均数
```
let res1=score.reduce(function(tmp,item,index){
//tmp为上一次结果
//item为当前数字
//index为下标(迭代次数)
console.log(tmp,item,index)
if(index!=this.length-1){
return tmp+item
} else{
return (tmp+item)/arr.length
}
})
```
- filter 过滤器
```
let res2=score.filter(item=>{
// if(item%4==0){
// return true
// }else{
// return false
// }
return item%4==0
})
```
- forEach 循环(迭代)
```
let res3=score.forEach((item,index)=>{
return item//undefined,没有返回值
})
```


 



7.数组

新增4个方法
map 映射 一个对一个
let arr = [12, 5, 8]
let result = arr.map(function (item) {
return item*2
})
let result2 = arr.map(item=>item*2) // 简写
console.log(result)
console.log(result2)

let score = [18, 86, 88, 24]
let result3 = score.map(item => item >= 60 ? '及格' : '不及格')
console.log(result3)

// 结果
[ 24, 10, 16 ]
[ 24, 10, 16 ]
[ '不及格', '及格', '及格', '不及格' ]
reduce 汇总 一堆出来一个
用于比如,算个总数,算个平均
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 arr = [1, 3, 5, 7]
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 循环迭代
var arr = [12, 4, 8, 9]
var result = arr.forEach(item => console.log(item))
var result = arr.forEach((item, index)=>console.log(item