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. JMeter之自动重定向和跟随重定向的区别

    自动重定向:只针对Get和Head请求,自动重定向转向到最终目标页面,但是Jmeter不记录重定向的中间页面过程,只记录最终页面返回结果.在结果树中,只能看到最终页面的服务器返回. 跟随重定向:是ht ...

  2. 【转】使用python实现appium的屏幕滑动

    前些日子写一个滑动手机页面的小脚本,看到大家给的内容都是swipe方法,这里对swipe方法做一个小介绍: Swipe(int start x,int start y,int end x,int y, ...

  3. (4)Linux常用基本操作

    1.ping和traceroute 指定源IP ping:ping -I 源 目的    #I为大写的i 带源地址路由tracert:traceroute -d <目标地址> -s < ...

  4. Gulp入门及简单使用

    前言 什么是gulp?gulp有什么用?为什么用gulp? gulp是前端开发的一种构建工具. 构建工具可以帮助我们工程化地开发项目,比如搭建本地服务器.编译CSS预处理器.保存文件后自动刷新浏览器而 ...

  5. 周一要做的事情Sd31y5YE

    问实习生活动是否有费用 调查结果更新,提醒各个pm 修改模板,把我们追加的东西体现在模板里

  6. SNORT入侵检测系统

    SNORT入侵检测系统 YxWa · 2015/10/09 10:38 0x00 一条简单的规则 alert tcp 202.110.8.1 any -> 122.111.90.8 80 (ms ...

  7. windows平台MySQL密码设置与破解

    一:制作系统服务: 1.在cmd下输入 mysql 这个相当于启动服务端了,然后该启动客户端了 .就表示安装成功. 2.再重新开启一个 cmd 窗口.kill 进程. 输入 mysql 即可进入 my ...

  8. java 多线程中的wait方法的详解

    java多线程中的实现方式存在两种: 方式一:使用继承方式 例如: PersonTest extends Thread{ String name; public PersonTest(String n ...

  9. AX_RecordSortedList

    static void RecordSortedList(Args _args) { SalesLine localSalesLine,fetchSalesLine; RecordSortedList ...

  10. vue2组件懒加载浅析

    vue2组件懒加载浅析 一. 什么是懒加载 懒加载也叫延迟加载,即在需要的时候进行加载,随用随载. 二.为什么需要懒加载 在单页应用中,如果没有应用懒加载,运用webpack打包后的文件将会异常的大, ...