js 数组 find,some,filter,reduce区别详解

当我们在开发 JavaScript 程序时,经常会用到数组的各种方法,其中包括 find、some、filter 和 reduce 等方法。这些方法可以帮助我们在数组中找到特定的元素、过滤不需要的元素、对数组进行操作并返回新的数组等。

下面就一个一个地详细讲解这些方法的用法和区别:

find 方法

find 方法返回满足条件的第一个元素,如果找不到,返回 undefined。

语法:array.find(callback(element[, index[, array]])[, thisArg])

参数:

  • callback:用于测试元素的函数,它返回 true 表示找到了,false 表示未找到。它的三个参数分别为:element(当前值),index(当前值的索引),array(当前数组对象)
  • thisArg(可选):执行 callback 时 this 对象的值。

示例1:

let ary = [1, 2, 3, 4, 5]
let res = ary.find(item => item > 3)
console.log(res) // 4

示例2:

let ary = [
  { name: '小明', age: 20 },
  { name: '小红', age: 21 },
  { name: '小李', age: 22 }
]
let res = ary.find(item => item.age === 21)
console.log(res) // { name: '小红', age: 21 }

some 方法

some 方法用于检测数组中是否有满足条件的元素,如果有,则返回 true,否则返回 false。

语法:array.some(callback(element[, index[, array]])[, thisArg])

参数:

  • callback:用于测试元素的函数,它返回 true 表示找到了,false 表示未找到。它的三个参数分别为:element(当前值),index(当前值的索引),array(当前数组对象)
  • thisArg(可选):执行 callback 时 this 对象的值。

示例1:

let ary = [1, 2, 3, 4, 5]
let res = ary.some(item => item > 3)
console.log(res) // true

示例2:

let ary = [
  { name: '小明', age: 20 },
  { name: '小红', age: 21 },
  { name: '小李', age: 22 }
]
let res = ary.some(item => item.age === 25)
console.log(res) // false

filter 方法

filter 方法过滤出数组中满足条件的元素,并返回一个新数组。如果没有找到满足条件的元素,则返回空数组。

语法:array.filter(callback(element[, index[, array]])[, thisArg])

参数:

  • callback:用于测试元素的函数,它返回 true 表示当前元素符合条件,false 表示不符合条件。它的三个参数分别为:element(当前值),index(当前值的索引),array(当前数组对象)
  • thisArg(可选):执行 callback 时 this 对象的值。

示例1:

let ary = [1, 2, 3, 4, 5]
let res = ary.filter(item => item > 3)
console.log(res) // [4, 5]

示例2:

let ary = [
  { name: '小明', age: 20 },
  { name: '小红', age: 21 },
  { name: '小李', age: 22 }
]
let res = ary.filter(item => item.age > 20)
console.log(res) // [{ name: '小红', age: 21 }, { name: '小李', age: 22 }]

reduce 方法

reduce 方法对数组的所有元素依次执行 callback 函数,并返回一个最终的结果。该方法的参数有两个:

语法:array.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])

参数:

  • callback:每个元素都会执行该回调函数。回调函数的四个参数依次为:accumulator(累加器)、currentValue(当前元素值)、currentIndex(当前元素的索引)、array(当前数组对象)。
  • initialValue(可选):用于初始化累加器的值。如果省略了该参数,则从数组的第一个元素开始执行 callback,累加器的默认值为数组的第一个元素的值。

示例1:

let ary = [1, 2, 3, 4, 5]
let res = ary.reduce((accumulator, currentValue) => accumulator + currentValue)
console.log(res) // 15

示例2:

let ary = [
  { name: '小明', age: 20 },
  { name: '小红', age: 21 },
  { name: '小李', age: 22 }
]
let res = ary.reduce((accumulator, currentValue) => accumulator + currentValue.age, 0)
console.log(res) // 63

以上就是 find、some、filter 和 reduce 等方法的详细讲解和示例使用。希望这些内容可以帮助您更好地理解和掌握这些方法的使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js 数组 find,some,filter,reduce区别详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • js中的鼠标事件有哪些(用法示例学习进阶)

    JS中的鼠标事件是指在浏览器中用户和鼠标交互时,所触发的事件。在前端开发中,这些鼠标事件被广泛应用于各种网站和应用程序中。下面将介绍一些常用的鼠标事件以及它们的用法示例。 鼠标单击事件(click) 鼠标单击事件(click)是指在鼠标左键单击时所触发的事件。在页面中使用最为广泛的是按钮的单击事件。下面是一个示例,当按钮被单击时,将弹出一个提示框。 <…

    JavaScript 2023年6月11日
    00
  • JavaScript中的Promise详解

    JavaScript中的Promise详解 本文将详细讲解JavaScript中Promise的相关知识,分别从Promise的含义和用法、Promise的状态和状态变化、Promise的链式调用、Promise的并行执行等方面进行阐述。 Promise的含义和用法 Promise是ECMAScript6引入的新特性,它使异步操作变得更加容易和直观。在原生的…

    JavaScript 2023年5月28日
    00
  • JS 判断代码全收集

    以下是详细讲解“JS 判断代码全收集”的完整攻略,包含了两条示例供您参考。 什么是JS判断代码全收集? 在Web开发中,很多时候需要获取并处理用户输入的数据,从而完成各种功能。但是,有些用户可能会利用特定的手段来绕过你的输入验证,注入恶意代码,从而对你的网站造成威胁。为了防止这样的情况发生,我们需要对用户输入的数据进行全收集。 如何判断代码全收集? 我们可以…

    JavaScript 2023年5月19日
    00
  • 关于Jackson的JSON工具类封装 JsonUtils用法

    下面是关于Jackson的JSON工具类封装JsonUtils的完整攻略: 1. 什么是Jackson库 Jackson是一个Java库,用于在Java对象和JSON格式之间进行转换。它提供了一组完整的处理JSON数据的工具,包括将Java对象序列化为JSON格式、将JSON格式反序列化为Java对象、对JSON格式进行解析和生成、支持JSON数组和XML等…

    JavaScript 2023年5月27日
    00
  • JavaScript小技巧 2.5 则

    完整攻略如下: JavaScript小技巧 2.5则 简介 这是第二篇JavaScript小技巧的第五则,本篇攻略将详细讲解如何利用JavaScript小技巧来提高开发效率和代码的可读性。 正文 小技巧1:使用数组解构赋值获取函数的多个返回值 在JavaScript中,函数可以有多个返回值,如果我们需要获取这些返回值并分别进行操作,那么可以使用数组解构赋值来…

    JavaScript 2023年5月27日
    00
  • 基于ajax的简单搜索实现方法

    接下来我会详细讲解“基于ajax的简单搜索实现方法”的完整攻略。 简介 在Web应用程序中,搜索功能是必不可少的。而基于ajax技术实现的搜索,具有很好的用户体验。本篇攻略将介绍如何使用ajax技术,实现一个简单的搜索功能。 准备工作 在开始实现搜索功能前,需要准备以下工作: 一个包含搜索功能的HTML页面 一个接收搜索请求的后端接口 一个用于展示搜索结果的…

    JavaScript 2023年6月11日
    00
  • JavaScript中的slice()方法使用详解

    JavaScript中的slice()方法是操作数组和字符串的常用方法之一,通过调用slice()方法可以截取数组或字符串的一部分元素或字符,返回一个新的数组或字符串,而原来的数组或字符串不会发生改变。下面将对slice()方法的使用进行详细讲解。 slice()方法语法 slice()方法的语法如下: arr.slice([begin[, end]]) 其…

    JavaScript 2023年5月28日
    00
  • js中apply和call的理解与使用方法

    下面是关于“js中apply和call的理解与使用方法”的完整攻略: 一、概述 在 JavaScript 中,call() 和 apply() 都是 Function 原型对象上的方法,主要用于改变函数运行时的上下文对象(即 this 指向)。 在使用时,两者的区别主要在于传递参数的方式不同。call() 接收的是一个参数列表,而 apply() 接收的是一…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部