使用 .some() 和 .every() 数组方法编写更简洁的 JavaScript 代码 它们如何工作?示例总结

2025-06-07

使用 .some() 和 .every() 数组方法编写更简洁的 JavaScript 代码

它们是如何工作的?

示例

概括

编写简洁易读的代码至关重要,尤其是在与他人合作时。在本文中,我将教你如何使用鲜为人知的数组方法.some(),并.every()在你的下一个项目中编写简洁易读的代码。

它们是如何工作的?

这两个函数的工作方式类似。它们的作用是,遍历数组中的每个元素,并检查某个函数(由开发人员定义)是否true某些元素所有元素中返回。

当您需要检查给定数组的某个内容是否为真(或假)时,这是一个很好的用例。

示例

假设以下数组:

const people = [
    { name: 'John', age: 47 },
    { name: 'Martha', age: 89 },
    { name: 'Edward', age: 31 },
    { name: 'Michele', age: 18 }
];
Enter fullscreen mode Exit fullscreen mode

每一个

如果我们想知道数组中的所有人是否forEach都超过法定年龄(> = 18 岁),我们可以编写以下代码:

let allAboveAge = true // assume they all are above age
people.forEach(person => { // iterate over every item
    if(person.age < 18) { // check if below age
        allAboveAge = false // at least one is not above age
    }
})
Enter fullscreen mode Exit fullscreen mode

上面的代码一开始可能很难理解,因为其他开发人员很难读懂。他们首先必须理解你试图实现的逻辑。

要使用 实现同样的事情.every(),您可以用一行易于阅读的代码来完成:

const allAboveAge = people.every(person => person.age >= 18)
Enter fullscreen mode Exit fullscreen mode

传递给 -method 的函数应该返回数组中每个元素.every()需要的结果。(在本例中,返回的是给定时刻被迭代的元素)trueperson

一些

.some()工作原理与 非常相似.every()。唯一的区别是,它不是检查语句中每个true项目是否,而是仅检查某些(至少一个!)项目是否true

因此,如果您要检查数组是否至少包含一个年龄超过的人,则可以使用以下语句并使用以下.some()方法进行检查:

const oneOrMoreAboveAge = people.some(person => person.age >= 18)
Enter fullscreen mode Exit fullscreen mode

概括

如您所见,这两种方法的工作方式非常相似,您只需要交换调用的方法,其余部分保持不变。

如果您想测试数组是否有Boolean结果,这两种方法都是非常方便的小工具。

尝试在下一个适用的项目中使用它,或者看看是否找到一种方法来重构当前项目中的代码,这样可以得到更漂亮、更易读的代码。

照片由Frank Vessia在 Unsplash 上拍摄

文章来源:https://dev.to/themarcba/write-cleaner-javascript-code-with-some-and-every-array-methods-bmb
PREV
使用 Tailwind CSS 构建响应式导航栏组件
NEXT
使用 JSON Web Token 保护你的 Node.js 应用程序