发布于 2026-01-06 0 阅读
0

使用 'some()' 和 'every()' 进行 Javascript 数组迭代

使用 'some()' 和 'every()' 进行 Javascript 数组迭代

如果你的代码中使用了数组,那么你很可能需要遍历数组中的值。有几种方法可以做到这一点,根据你想要实现的目标,有些方法比其他方法更好、更高效。

在这篇文章中,我将重点介绍两种方法:some()every()

some()

some()方法测试数组中是否至少有一个元素通过了所提供函数实现的测试。它逐个检查元素,如果找到一个函数返回真值的数组元素,则some()返回 true ,true不再检查其余元素。否则,返回 false false

假设你想检查某个联系人是否存在于你的联系人列表中:

const contacts = ['Stewie', 'Meg', 'Quagmire', 'Cleveland'];

function checkContacts(arr, val) {
  return arr.some(arrVal => val === arrVal);
}

checkContacts(contacts, 'Lois');   // false
checkContacts(contacts, 'Meg'); // true
Enter fullscreen mode Exit fullscreen mode

检查是否匹配时Lois,它会从数组的末尾some()开始检查所有元素,如果没有找到匹配项,则返回。检查是否匹配时,它会在遇到 时停止并返回,忽略其余元素。StewiefalseMegMegtrue

every()

此方法测试数组中的所有元素是否都通过了所提供函数实现的测试。它逐个检查元素,如果找到一个函数返回假值的数组元素,则every()返回false,false不再检查其余元素。否则,返回 false true

让我们检查一下联系人列表中所有姓名是否都超过 3 个字符:

['Stewie', 'Meg', 'Quagmire', 'Cleveland'].every(contact => contact.length >= 4); // false
['Stewie', 'Megan', 'Quagmire', 'Cleveland'].every(contact => contact.length >= 4); // true
Enter fullscreen mode Exit fullscreen mode

第一个测试返回 true,false因为数组中Meg只有 3 个字符。记住:对于 `is` every(),数组中的所有元素都必须为真值才能返回 true true因此,在第二个测试中将 `is` 改为 `is` 会返回Megtrue Megantrue

如果您需要执行与上述类似的任务,这两种方法会很有帮助。当然,它们并非唯一的方法。希望对大家有所帮助!:)

文章来源:https://dev.to/wangonya/javascript-array-iteration-with-some-and-every-4i87