JavaScript 中的数组操作 🧐 简介 结论

2025-06-07

JavaScript 中的数组操作🧐

介绍

结论

介绍

当我们开始编程时,我们倾向于创建自己的函数,并使用自己的循环来操作数组

实际上,几乎所有OOP 语言(包括 JavaScript)都提供了实现它的方法

如果你刚开始学习 JavaScript,那么这篇文章应该非常有用;对于其他人来说,这将是一个很好的提醒。

每一个

every 方法允许我们测试数组中的所有元素是否都满足某个条件。如果所有元素都满足测试条件,
则返回true ,否则返回false
条件是一个函数。

例如,以下示例将测试数组中的每个“人类”是否都是成年人:

// The condition has to return a boolean
function condition (human) {
    return human.age >= 18
}

var arr = [{
    name: 'Thomas',
    age: 19},{
    name: 'Noé',
    age: 17},{
    name: 'Luc',
    age: 20}]

console.log(arr.every(condition))
// Should output false

但是,如果至少有一个元素通过测试,some() 方法将返回true

筛选

filter 方法创建并返回一个新数组,其中包含所有符合条件的元素
条件是一个函数。

以下示例返回唯一由 adult 组成的数组:

function condition (human) {
    return human.age >= 18
}
var arr = [{
    name: 'Thomas',
    age: 19},{
    name: 'Noé',
    age: 17},{
    name: 'Luc',
    age: 20}]

console.log(arr.filter(condition))
// Returns Thomas and Luc

寻找

find() 方法返回数组中第一个符合条件的元素 否则,如果没有元素符合条件,则 find() 返回'undefined' 通常,条件是一个函数。

此示例返回第一个成年人:

function condition (human) {
    return human.age >= 18
}

var arr = [{
    name: 'Thomas',
    age: 19},{
    name: 'Noé',
    age: 17},{
    name: 'Luc',
    age: 20}]

console.log(arr.find(condition))
// Should returns Thomas

地图

map 方法创建一个新数组,并返回对调用数组的每个元素执行的函数的值

此示例会增加每个人的年龄:

var arr = [{
    name: 'Thomas',
    age: 19},{
    name: 'Noé',
    age: 17},{
    name: 'Luc',
    age: 20}]

console.log(arr.map(function(element){
    element.age += 1    
    return element
}))

减少

最后但同样重要的一点是,reduce() 方法对我来说是最棘手的方法

Reduce 方法通过对数组中的每个值执行提供的函数,将数组缩减为单个值。 对于每个元素,返回值存储在一个“累加器”中,该累加器可用于所有迭代。Reduce () 方法的 最终返回值是这个累加器 累加器在方法调用时初始化


此外,reducer 函数还可以采用另外两个参数:

  • 当前指数
  • 源数组

此示例返回年龄总和:

function reducer (accumulator,element) {
    return accumulator + element.age
}

var arr = [{
    name: 'Thomas',
    age: 19},{
    name: 'Noé',
    age: 17},{
    name: 'Luc',
    age: 20}]

console.log(arr.reduce(reducer,0))

前面的例子很简单,但是reduce()方法真的很强大,用它可以实现很多事情。

结论

感谢您阅读我的文章,如果您有任何疑问,请提出!🧐

文章来源:https://dev.to/thomasaudo/advanced-array-manipulation-in-javascript--fhi
PREV
如何使用 Jest 测试 JavaScript
NEXT
这就是为什么你今天应该使用 Angular 9