数组:
  • 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
*/

ES6——数组的更多相关文章

  1. ES6数组扩展

    前面的话 数组是一种基础的JS对象,随着时间推进,JS中的其他部分一直在演进,而直到ES5标准才为数组对象引入一些新方法来简化使用.ES6标准继续改进数组,添加了很多新功能.本文将详细介绍ES6数组扩 ...

  2. ES6数组及数组方法

    ES6数组可以支持下面的几种写法: (1)var [a,b,c] = [1,2,3]; (2)var [a,[[b],c]] = [1,[[2],3]]; (3)let [x,,y] = [1,2,3 ...

  3. 数组的复制及ES6数组的扩展

    一.数组的复制 // alert([1,2,3]==[1,2,3]); let cc = [0,1,2]; let dd = cc; alert(dd==cc);//此时改变dd会影响cc ES5 只 ...

  4. es6数组的扩展

    数组扩展运算符 ...(三个点) const demoArr=[0,1,2,3,4] console.log(...demoArr) // 0 1 2 3 4 // 他把一个数组用逗号分隔了出来 // ...

  5. ES6 数组方法拓展

    ES6 数组方法拓展 1.Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括E ...

  6. ES6数组相关

    ES6数组新增的几个方法: 1. forEach() //forEach()遍历数组,无返回值,不改变原数组 var arr=[1,2,3,4] arr.forEach((item,index,arr ...

  7. ES6数组新加 Buff

    欢迎关注本人公众号<迈向大前端>,里面有15本前端相关的电子书,送给在前端路上迷茫的同学们! 本章篇幅很长,分开来发,这一小篇主要讲ES6数组的Array.of()和Array.from( ...

  8. ES6数组的扩展--Array.from()和Array.of()

    一. Array.from() : 将伪数组对象或可遍历对象转换为真数组 1.何为伪数组 如果一个对象的所有键名都是正整数或零,并且有length属性,那么这个对象就很像数组,语法上称为"类 ...

  9. JavaScript ES6 数组新方法 学习随笔

    JavaScript ES6 数组新方法 学习随笔 新建数组 var arr = [1, 2, 2, 3, 4] includes 方法 includes 查找数组有无该参数 有返回true var ...

  10. 关于 ES5 & ES6 数组遍历的方法

    ES5 数组遍历方法 1.for 循环 , , , , ] ; i < arr.length; i++) { console.log(arr[i]) } 2.forEach , , , , ] ...

随机推荐

  1. opencv windows源码编译

    WITH_QT//H:\software\programming\qt\5.12.3\mingw73_32\lib\cmake  5.6的路径要改这样 WITH_OPENGL 编译器mingw32-m ...

  2. 远程连接Linux相关操作

    1.远程连接的步骤 编译网卡配置文件,修改onboot参数 vi /etc/sysconfig/network-scripts/ifcfg-ens33进入命令之后将onboot改成onboot=yes ...

  3. windows 10 删除资源管理器导航栏 Creative Cloud Files

    安装完Adobe的Photoshop.After Effects等软件后,资源管理器导航栏会出现让人讨厌的Creative Cloud Files目录,稍微修改注册表即可删除. 快捷键Windows ...

  4. Python---基础-运算符int和range函数

    这行代码是什么意思 if not (money<100) money >= 100 -------------------------------假设有x = 1, y = 2, z = ...

  5. 032:DTL常用过滤器(1)

    为什么需要过滤器: 在DTL中,不支持函数的调用形式‘()’,因此不能给函数传递参数,这将有很大的局限性:而过滤器其实就是一个函数,可以对需要处理的参数进行处理,并且还可以额外接受一个参数(也就是说: ...

  6. 对webpack的初步研究5

    Loaders 加载器是应用于模块源代码的转换.它们允许您在处理import或“加载” 文件时预处理文件.因此,加载器有点像其他构建工具中的“任务”,并提供了处理前端构建步骤的强大方法.加载器可以将文 ...

  7. ### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 必须声明标量变量 "@P23@P24"。(sql少一个逗号)【??】

    (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,[??],?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?, ...

  8. [java] [error] java.lang.OutOfMemoryError: unable to create new native thread

    前言 最近公司的服务器出现了oom的报错,经过一番排查,终于找到了原因.写下这篇博客是为了记录下查找的过程,也是为了帮助那些跟我门遇到的情况相同的人可以更快的寻找到答案. 环境 系统:linux(ce ...

  9. 笨办法学Python(learn python the hard way)--练习程序1-10

    下面是当初看这本书时按照书中的代码做的练习,一行一行敲下来的,都已经试运行过,没有错误(基于python3),练习1-练习10 #ex1.py 1 #print("Hello world!& ...

  10. leetcode 171. Excel表列序号(python)

    给定一个Excel表格中的列名称,返回其相应的列序号. 例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...