ES7 新增方法:Array.prototype.some、Array.prototype.every

阅读时长 4 分钟读完

前言

在前端开发中,我们经常需要对数组进行操作,如查找符合条件的元素、检查是否所有元素都满足条件等。ES7 新增了两个方法:Array.prototype.someArray.prototype.every,可以帮助我们更加简洁地完成这些任务。本文主要介绍这两个方法的用法及其相关知识。

Array.prototype.some

Array.prototype.some 方法用于检测数组中是否至少有一个元素满足条件。该方法接受一个回调函数作为参数,这个回调函数接受三个参数:

  • currentValue 当前元素
  • index 当前元素的索引
  • array 当前数组对象

如果回调函数返回 true,则 some 方法返回 true,否则返回 false

示例代码:

上述代码中,arr.some(item => item % 2 === 0) 会检查数组 arr 中是否存在至少一个偶数,由于该数组中包含偶数 2 和 4,所以 hasEvenNum 的值为 true

Array.prototype.every

Array.prototype.every 方法用于检测数组中的所有元素是否都满足条件。该方法接受一个回调函数作为参数,这个回调函数接受三个参数:

  • currentValue 当前元素
  • index 当前元素的索引
  • array 当前数组对象

如果回调函数对于所有元素都返回 true,则 every 方法返回 true,否则返回 false

示例代码:

上述代码中,arr.every(item => item % 2 === 0) 会检查数组 arr 中是否所有元素都是偶数,由于该数组中包含奇数 1 和 3,所以 isAllEven 的值为 false

区分 some 和 every

在实际的开发中,我们经常需要同时使用 someevery 方法来处理数组。如何区分这两个方法?

  • 如果我们需要判断数组中是否至少存在一个元素满足某个条件,就使用 some
  • 如果我们需要判断数组中的所有元素是否都满足某个条件,就使用 every

看到这里,可能会有同学想问:“那如果我要判断数组中是否存在至少一个元素不满足某个条件,应该使用哪个方法呢?”这个问题的解决方法是“反过来”,即使用 Array.prototype.some(item => !condition(item))

总结

  • Array.prototype.some 方法用于判断数组中是否存在至少一个元素满足某个条件。
  • Array.prototype.every 方法用于判断数组中的所有元素是否都满足某个条件。
  • 两个方法都接受一个回调函数作为参数,这个回调函数会对数组中的每个元素进行检查并返回布尔值。
  • 两个方法的返回值均为布尔值,表示是否满足条件。
  • 在实际开发中,根据需要选择合适的方法。

参考资料

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64f06cabf6b2d6eab3a758cf

纠错
反馈