js数组方法大全(下)


记录一下整理的js数组方法,免得每次要找方法都找不到。图片有点多,注意流量,嘻嘻!

本期分享

  • forEach()
  • map()
  • filer()
  • every()
  • some()
  • reduce()
  • reduceRight()
  • indexOf()
  • lastIndex()

上期分享

  • join()
  • reverse()
  • sort()
  • concat()
  • slice()
  • splice()
  • push()
  • pop()
  • unshift()
  • shift()
  • toString()
  • toLocaleString()

forEach() --->遍历

  • 使用热度:经常用
  • 是否改变原始数组:否
  • 返回:无
  • 参数:
参数位置 参数类型 是否必选 说明
1 function 三个参数分别是:数组元素、元素的索引、数组本身
  • 说明:该方法无法提前终止运行,如果要提前终止运行,只能使用try块中,然后抛出一个异常。
  • 小技巧:如果数组是个数组对象形式可以直接操作数组元素改变原始数组本身,因为对象是个引用数据类型嘛!
  • 实例如下:
var log=console.log;
var data=[1,2,3,4,5];
var sum =0;
data.forEach(value=>{
sum+=value;
})
log(sum); data.forEach((v,i,a)=>{
a[i]=v+1;
})
log(data); var data_post=[{a:1},{a:2}]
data_post.forEach(value=>{
value.a++;
})
log(data_post)

map() --->映射

  • 使用热度:经常用
  • 是否改变原始数组:否
  • 返回:返回一个新函数
  • 参数:
参数位置 参数类型 是否必选 说明
1 function 三个参数分别是:数组元素、元素的索引、数组本身
  • 说明:传递给map函数应该有返回值,返回值是新数组的元素。
  • 实例如下:
var log=console.log;
var data=[1,2,3,4,5];
var b= data.map(x=>{
return x*x;
})
log(b)

filter() --->过滤

  • 使用热度:常用
  • 是否改变原始数组:否
  • 返回:返回过滤后的数组
  • 参数:
参数位置 参数类型 是否必选 说明
1 function 三个参数分别是:数组元素、元素的索引、数组本身
  • 说明:如果返回值是true或者可以转化为true的值,那么这个值就是新数组的元素。
  • 实例如下:
var log=console.log;
var data=[1,2,3,4,5];
var b= data.filter(x=>{
return x<3;
})
log(b)

every() --->检测

  • 使用热度:不常用
  • 是否改变原始数组:否
  • 返回:true或者false
  • 参数:
参数位置 参数类型 是否必选 说明
1 function 三个参数分别是:数组元素、元素的索引、数组本身
  • 说明:当且仅当针对数组中的所有元素调用绑定函数都返回true时,它才返回true。
  • 注意:一旦every或者some已经确定了改返回什么值得时候就不会遍历数组了。根据数学上的惯例,在空数组调用时,every返回true,some返回false。
  • 实例如下:
var log=console.log;
var data=[1,2,3,4,5];
var b= data.every(x=>{
return x<10;
})
log(b) var c= data.every(x=>{
return x%2===0;
})
log(c)

some() --->检测

  • 使用热度:不常用
  • 是否改变原始数组:否
  • 返回:true或者false
  • 参数:
参数位置 参数类型 是否必选 说明
1 function 三个参数分别是:数组元素、元素的索引、数组本身
  • 说明:当数组中至少有一个元素调用绑定函数返回true时,它就返回true。
  • 注意:一旦every或者some已经确定了改返回什么值得时候就不会遍历数组了。根据数学上的惯例,在空数组调用时,every返回true,some返回false。
  • 实例如下:
var log=console.log;
var data=[1,2,3,4,5];
var b= data.some(x=>{
return x>10;
})
log(b) var c= data.some(x=>{
return x%2===0;
})
log(c)

reduce() --->简化

  • 使用热度:不常用
  • 是否改变原始数组:否
  • 返回:返回一个值
  • 参数:
参数位置 参数类型 是否必选 作用
1 function 四个参数分别是:初始化值/数组元素、数组元素、元素的索引、数组本身
2 number 供计算的初始化值
  • 说明:第一个参数是到目前为止的简化操作累计的结果
  • 注意:如果没有初始化值,第一次调用函数的第一个参数就是第一个数组元素,第二个参数则是第二个数组元素。如果有初始化值,第一次调用函数的第一个参数就是初始化值,二个参数则是第一个数组元素。
  • 实例如下:
var log=console.log;
var data=[1,2,3,4,5];
var b= data.reduce((x,y)=>{
return x+y;
},0)
log(b) var c= data.reduce((x,y)=>{
return x*y;
},1)
log(c) var d= data.reduce((x,y)=>{
return x>y?x:y;
},1)
log(d)

reduceRight() --->简化

  • 使用热度:不常用
  • 是否改变原始数组:否
  • 返回:返回一个值
  • 参数:
参数位置 参数类型 是否必选 作用
1 function 四个参数分别是:初始化值/数组元素、数组元素、元素的索引、数组本身
2 number 供计算的初始化值
  • 说明:第一个参数是到目前为止的简化操作累计的结果。不同于reduce这个仅仅是从右到左计算。
  • 注意:如果没有初始化值,第一次调用函数的第一个参数就是第一个数组元素,第二个参数则是第二个数组元素。如果有初始化值,第一次调用函数的第一个参数就是初始化值,二个参数则是第一个数组元素。
  • 实例如下:
var log=console.log;
var data=[1,2,3,4,5];
data.reduceRight((x,y)=>{
log(y)
return x+y;
},0)

indexOf() --->搜索

  • 使用热度:经常用
  • 是否改变原始数组:否
  • 返回:返回数组索引或者-1
  • 参数:
参数位置 参数类型 是否必选 作用
1 * 要搜索的数组元素
2 number 从数组哪个索引开始搜索
  • 说明:如果能搜索到结果将返回第一个索引,如果搜索不到就返回-1
  • 注意:如果第二个参数是负数,指的是从数组元素末尾的偏移量位置开始向后搜索,而不是到偏移量位置就截止搜索了,这里是很容易和splice弄混的。
  • 实例如下:
var log=console.log;
var data=[1,2,3,4,5];
var b=data.indexOf(1,-5);
log(b);

lastIndexOf() --->搜索

  • 使用热度:经常用
  • 是否改变原始数组:否
  • 返回:返回数组索引或者-1
  • 参数:
参数位置 参数类型 是否必选 作用
1 * 要搜索的数组元素
2 number 从数组哪个索引开始搜索
  • 说明:和indexOf不同的是lashIndexOf是反向搜索
  • 注意:因为是反向搜索,当第二个参数是负数的时候,就是指从末尾偏移量的位置向前搜索
  • 实例如下:
var log=console.log;
var data=[1,2,3,2,5];
var b=data.lastIndexOf(2,-3)
log(b) var c=data.lastIndexOf(1,-5)
log(c)

js数组方法大全(下)的更多相关文章

  1. 转载收藏(js数组方法大全)

    js数组方法大全 JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Arra ...

  2. js数组方法大全(上)

    # js数组方法大全(上) 记录一下整理的js数组方法,免得每次要找方法都找不到.图片有点多,注意流量,嘻嘻! 本期分享 join() reverse() sort() concat() slice( ...

  3. js数组方法大全

    JavaScript中创建数组有两种方式 (一)使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组var arr2 = new Array(20); // ...

  4. js中数组方法大全

    js数组方法大全 一:前言 我们在学到js中数组的时候,我们会接触到js中数组的一些方法,这些方法对我们来说,可以很遍历的达到我们想要的结果,但是因为方法比较多,有些方法也不常用,可能会过一段时间就会 ...

  5. JavaScript数组方法大全(推荐)

    原网址:http://www.jb51.net/article/87930.htm 数组在笔试中经常会出现的面试题,javascript中的数组与其他语言中的数组有些不同,为了方便之后数组的方法学习, ...

  6. 一站式超全JavaScript数组方法大全

    一站式JavaScript数组方法大全(建议收藏) 方法一览表 详细操作 本人总结了JavaScript中有关数组的几乎所有方法(包含ES6之后新增的),并逐一用代码进行演示使用,希望可以帮助大家! ...

  7. js 数组方法比较

    js 数组方法比较 table th:first-of-type { width: 80px; } table th:nth-of-type(2) { width: 120px; } table th ...

  8. js数组方法详解

    Array对象的方法-25个 /*js数组方法详解 */ /* * 1 concat() 用于连接多个数组或者值-------------- * 2 copyWithin() 方法用于从数组的指定位置 ...

  9. JavaScript数组方法大全(第二篇)

    数组方法大全(第二篇) 注意:如有错误欢迎指出,如有雷同纯属巧合,本博客参考书籍JavaScript权威指南,有兴趣的小伙伴可以去翻阅一下哦 forEach()方法 遍历数组,里面可以传递一个方法 v ...

随机推荐

  1. 设计模式常见面试知识点总结(Java版)

    设计模式 这篇总结主要是基于我设计模式系列的文章而形成的的.主要是把重要的知识点用自己的话说了一遍,可能会有一些错误,还望见谅和指点.谢谢 更多详细内容可以到我的cdsn博客上查看: https:// ...

  2. 移动端Rem布局注意事项

    1.布局的总体结构框架:      2.注意事项: (a):如果是左右两栏的布局方式,须在article的同级加一个aside: 因为是同级,所以必须设置同样的样式:而且他俩的父级,也就是sectio ...

  3. B站自动刷弹幕

    B站自动填弹幕(附带createEvent消息机制) 昨晚看的比赛真的要气死我.RNG 居然又输了... 为了LPL...我写了一个为LPL加油的脚本.希望大家能和我一起为LPL加油! 脚本代码如下: ...

  4. JZ2440 u-boot-2016.11、linux-4.17和busybox-1.28.4移植笔记

    2018年5月份开始在JZ2440上陆续移植了u-boot-2016.11.u-boot-spl-2016.11.linux-4.17和busybox-1.28.4,其中linux-4.17和busy ...

  5. 关于vue使用的一些小经验

    这一年来说,vue的势头很猛,用户量“噌”“噌”“噌”的涨 为了不掉队不落伍.在后台大哥的胁迫下,不得不选择用了它 刚开始很难接受vue的写法,在编辑器里很容易报错,基本上每行都会出现红色的波浪线 这 ...

  6. docker实验--redis集群搭建

    背景介绍: 我经常在做一些小项目的时候,采用了Redis来做缓存,但是都是基于单节点的,一旦redis挂了,整个项目就挂了.于是乎,想到了多节点集群的方式来使用,就开始折腾着怎么去搭建这个集群.在网上 ...

  7. 图论-最小生成树<Kruskal>

    昨天: 图论-最小生成树<Dijkstra,Floyd> 以上是昨天的Blog,有需要者请先阅读完以上再阅读今天的Blog. 可能今天的有点乱,好好理理,认真看完相信你会懂得 然而,文中提 ...

  8. java ThreadLocal线程设置私有变量底层源码分析

    前面也听说了ThreadLocal来实现高并发,以前都是用锁来实现,看了挺多资料的,发现其实还是区别挺大的(感觉严格来说ThreadLocal并不算高并发的解决方案),现在总结一下吧. 高并发中会出现 ...

  9. java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: NO)报错

    今天用spring整合mybatis的时候,报了这个错误.去网上查了一下,网上大多数都是用户权限问题,但是我用SQLyog视图使用root用户crud没有问题,排除了是权限的问题,后面发现是idea提 ...

  10. CPU爆满后的无助感

    告警 晚七点刚好上地铁,握在手里的手机震动了好几下,根据震动这几下的手感已经判断出这是钉钉在告警了,十有八九就是线上的问题,通过Zabbix监控的一台线上服务器已经五分钟不可达,这应该不会是网络网络问 ...