1.every和some

两个方法的参数都是一个函数,函数的有3个参数,依次是当前值value,索引index,数组array

every判断数据中的每一项是否满足某个条件,如果满足就返回true,有一项不符合就返回false

var arr = [1,2,3]
var b = arr.every(function(value,index,arr){
if(value>2){
return true
}
})
console.log(b) // false

some判断数组中的某一项是否满足某个条件,如果满足就返回true,都不满足就返回false

var arr = [1,2,3]
var b = arr.some(function(value,index,arr){
if(value>2){
return true
}
})
console.log(b) // true

every和some返回的结果都是boolean值,而不是数组。

2. reduce

调用方式array.reduce(callback[, initialValue]); 对数组中的每一个元素(从左到右)执行callback函数累加,callback的参数有4个prev(数组第一个值或者出入的初始值initialValue) value(当前值),index(当前值索引),arr(数组)

如果有初始值,reduce会从数组第一元素开始执行,callback会执行array.length次。如果没有初始值,reduce会从数组第二个元素开始执行,callback会执行array.length-1次。

有初始值

var arr = [1,2,3]
var sum = arr.reduce(function(prev,cur,index,arr){
console.log('index:',index,prev,cur)
return prev+cur
},0)
// 打印结果
// index: 0 0 1
// index: 1 1 2
// index: 2 3 3

无初始值

var arr = [1,2,3]
var sum = arr.reduce(function(prev,cur,index,arr){
console.log('index:',index,prev,cur)
return prev+cur
})
// 打印结果
// index: 1 1 2
// index: 2 3 3

3.indexOf 和 includes的区别

  • 返回值不同:indexOf返回的是数值类型,而includes返回的是boolean值

  • 对NaN的处理方式不同,

  • 对稀疏数组的处理结果不同。

var a = [NaN]
console.log(a.indexOf(NaN)) // -1
console.log(a.includes(NaN)) // true var b = [1,,3]
console.log(b.indexOf(undefined)) // -1
console.log(b.includes(undefined)) // true

4.find

调用方式 arr.find(callback[, thisArg])。find 方法对数组中的每一项元素执行一次 callback 函数,直至有一个 callback 返回 true。当找到了这样一个元素后,该方法会立即返回这个元素的值 。callback 函数带有3个参数:当前元素的值、当前元素的索引,以及数组本身

var a = [1,2,3]
var b = a.find(function(value,index,arr){
return value > 1
})
console.log(b) // 2

  

find返回的是元素的值,而不是元素在数组中的索引,要返回数组的索引,使用findIndex

5.copyWithIn

调用方式arr.copyWithin(target[, start[, end]])

  • target,复制的序列要插入到数组中的位置

  • start,开始复制元素的起始位置

  • end,开始复制元素的结束位置,如果被忽略,默认copyWithin将会复制到arr.ength

var arr = [1,2,3,4,5]
arr.copyWithin(0,3)
console.log(arr) // [4, 5, 3, 4, 5]

这个方法会修改原来的数组

 

js数组中容易误用的一些方法的更多相关文章

  1. js数组中对象去重 (reduce() 方法)

    一个数组中含有对象,并且去掉数组中重复的对象.主要代码如下: var arrData = [ {id: , name: "小明"}, {id: , name: "小张&q ...

  2. JS数组去重的几种常见方法

    JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...

  3. js oop中的三种继承方法

    JS OOP 中的三种继承方法: 很多读者关于js opp的继承比较模糊,本文总结了oop中的三种继承方法,以助于读者进行区分. <继承使用一个子类继承另一个父类,子类可以自动拥有父类的属性和方 ...

  4. js 数组容易弄混的那些方法

    js数组中 我们很多数组的方法都知道其中的含义 但是每一次用的都不是很顺手 下边我给大家写了一个小小的demo 来理解那些 近似”双胞胎“的东西 // splice方法 var a=[1,2,3,4, ...

  5. 统计js数组中奇数元素的个数

    如何统计一个JS数组中奇数元素的个数呢? 这是群友提出的一个问题,大部分群友给出的是遍历 然后对2取模,得到最终结果. 这样的写法是最容易想得到的,那么有没有其他思路呢? 这里我提供另外一种思路,我们 ...

  6. php 返回数组中指定多列的方法

    php array_column 方法可以返回数组中指定的一列,但不能返回多列,本文将介绍array_column方法的使用,并用代码演示返回数组中指定多列的方法. 1.array_column说明 ...

  7. js数组中的find(), findIndex(), filter(), forEach(), some(), every(), map(), reduce()方法的详解和应用实例

    1. find()与findIndex() find()方法,用于找出第一个符合条件的数组成员.它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该 ...

  8. js中删除数组中某一项的方法

    1:js中的splice方法 splice(index,len,[item])    注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 inde ...

  9. js数组中的reverse()方法

    reverse方法是将数组中的元素的顺序进行反转,在原数组上操作,然后返回原数组.由于本人是学习js的新人,对reverse函数进行了几个小实验,以下实验均在Chrome浏览器上运行 实验一:reve ...

随机推荐

  1. Servlet第二篇(介绍、ServletConfig;ServletContext)

    什么是Serlvet? Servlet其实就是一个遵循Servlet开发的java类.Serlvet是由服务器调用的,运行在服务器端. 为什么要用到Serlvet? 我们编写java程序想要在网上实现 ...

  2. 从零开始学spring cloud(八) -------- Eureka 高可用机制

    一.Eureka高可用机制介绍 Eureka服务器没有后端存储,但注册表中的服务实例都必须发送心跳以使其注册保持最新(因此可以在内存中完成). 客户端还有一个Eureka注册的内存缓存(因此,他们不必 ...

  3. 平板电脑与火狐浏览器下载excel中文文件名乱码

    fileName = new String(fileName.getBytes("utf-8"), "iso8859-1");//兼容火狐.ie.平板 resp ...

  4. Struts2源码解析2

    看了前面一节对Struts2各个模块运行有了大概了解,也对调用的函数有了一定的了解,本节希望打断点跑一个Struts2例子! 还是放在struts2结构图: 一:项目启动后解析web.xml文件,会解 ...

  5. Centos7下面配置客户端OpenVPN

    安装 openvpn yum install -y openvpn vim 配置默认的 daemon 文件 vim /usr/lib/systemd/system/openvpn@.service [ ...

  6. 关于js中操作数组的一些方法

    网上找的通篇看了一遍讲的很透收藏了!  转自(https://www.cnblogs.com/blogs-8888/p/6518683.html) 1.锁定数组的长度(让数组的长度变成只读). 1 2 ...

  7. robotframework 连接mysql数据库

    1.安装databaselibrary.pymysql 通过cmd命令执行:pip install robotframework-databaselibrary 通过cmd命令执行:pip insta ...

  8. python基础之小数据池

    一,id,is,== 在Python中,id是什么?id是内存地址,比如你利用id()内置函数去查询一个数据的内存地址: name = '太白' print(id(name)) # 158583128 ...

  9. Markdown使用小总结[不定时更新]

    title: Markdown使用小总结 date: 2019-03-27 10:09:19 tags: Markdown --- 鸽了这么久,Markdown使用下降,因此写一篇博客来总结一下至今( ...

  10. WIN10家庭版的升级到企业版

    1.右键点击[此电脑]---->属性 2.点击[激活windows] 3.在左侧点击[激活]--->更改产品密匙 4.然后输入产品密匙:NPPR9-FWDCX-D2C8J-H872K-2Y ...