ES6——数组

数组:
  • map       映射  ———— 一个对一个
  • reduce   汇总  ———— 一堆出来一个
  • 算个总数 [1,2,3]==>6
  • 算平均数 [1,2,3]==>2
  • filter   过滤器———— 
  • forEach  循环(迭代)
 
1、map      映射  ———— 一个对一个
     如:
1.[76,57,33,87,95]-->[及格,不及格,不及格,及格,及格]
2.[45,57,132,34](用户ID)
  [
    {name:'blue',level: 0,role: 0},
    {name:'zhang',level: 88,role: 3},
    {name:'li',level: 66,role: 0},
    {name:'liu',level: 88,role: 0},
  ]

  举例:

例1:
let arr = [12,5,8];
// let result = arr.map(function(item){
//     return item*2;
// });
let res = arr.map(item=>item*2);
alert(res);
// 输出:24,10,16
例2:
let score = [32,67,56,76,87];
let res = score.map(item=>item>=60?'及格':'不及格');
alert(score); // 32,67,56,76,87
alert(res);  // 不及格,及格,不及格,及格,及格
2、reduce   汇总  ———— 一堆出来一个
      算个总数 [1,2,3]==>6
      算平均数 [1,2,3]==>2
例1:求和
let arr = [12,69,180,8763];
let res = arr.reduce(function(tmp,item,index){
        // 临时结果 当前变量 当前位置
    return tmp + item;
});
console.log(res); 
// 输出:9024
例2:求平均数
1.
let arr = [1,2,3,4,5,6,7];
let res = arr.reduce((tmp,item,index)=>{
    return tmp+item;
})
console.log(res/(arr.length));
2.
let arr = [1,2,3,4,5,6,7];
let res = arr.reduce(function(tmp,item,index){
    if(index!=this.length-1){ //不是最后一次(Y)
        return tmp + item;
    }else{ // 是最后一次
        return (tmp + item)/arr.length;
    }
});
console.log(res);
// 输出:28
3.
let arr = [1,2,3,4,5,6,7];
let res = arr.reduce((tmp,item,index)=>{
    // 解决this指向问题
    return index!=arr.length-1? (tmp+item):((tmp + item)/arr.length);
});
console.log(res);
// 输出:4
3、filter   过滤器 ——— 
/*
3、filter
let arr = [1,4,3,6,5,9];
// let res = arr.filter(item=>{
//     if(item%3==0){
//         return true;
//     }else{
//         return false;
//     }
// });
// let res = arr.filter(item=>item%3==0?true:false);
let res = arr.filter(item=>item%3==0);
alert(res); 
// 输出:3,6,9
2.
let arr = [
    {title:'男士衬衫',price:66},
    {title:'女式衬衫',price:666},
    {title:'男士包',price:99},
    {title:'女式包',price:999}
];
let result = arr.filter(json=>json.price>=100);
console.log(result);
//
输出
(2) [{…}, {…}]
0: {title: "女式衬衫", price: 666}
1: {title: "女式包", price: 999}
length: 2
__proto__: Array(0)
*/
4、forEach  循环(迭代)
/*
4、forEach
let arr = [12,4,8,9];
// arr.forEach(item=>{
//     alert(item);
// });
// 12 4 8 9
arr.forEach((item,index)=>{
    alert(index + ':' + item);
});
// 0:2  1:4  2:8
*/
原文地址:https://www.cnblogs.com/sylys/p/11638043.html