在 ES7 中,Array.prototype
中新增了 some
和 every
两个数组方法。这两个方法提供了一种快捷的方式来判断数组元素是否满足某个条件,允许我们利用函数回调来处理数组中的元素,从而产生更加灵活和可维护的代码。
some 方法
some
方法接收一个函数作为参数,在数组中查找元素,该函数返回一个布尔值。此方法将在数组中迭代每个元素,并将该元素传递给回调函数以判断它是否充分满足条件。如果至少有一个元素满足条件,该函数返回 true
,否则返回 false
。
arr.some(callback[, thisArg])
其中参数 callback
是一个回调函数,用于判断某个元素是否符合条件。这个回调函数接受 3 个参数:
currentValue
:当前数组元素的值。index
:当前元素的下标(可选)。array
:被迭代的数组(可选)。
下面是一个简单的示例,使用 some
函数查找数组中是否包含偶数。
const arr = [1, 3, 5, 6, 7, 9]; const hasEvenNumber = arr.some((item) => { return item % 2 === 0; }); console.log(hasEvenNumber); // 输出 true
此示例使用箭头函数实现回调函数。如果数组中包含至少一个偶数,则该方法将返回 true
。
every 方法
every
方法也接收一个回调函数作为参数,并在数组中迭代每个元素,该函数也返回布尔值。但是,该方法仅在数组中的所有元素都满足条件时返回 true
,否则返回 false
。
arr.every(callback[, thisArg])
与 some
方法的回调函数相似,every
方法的回调函数也接受三个参数。
下面的示例显示了如何使用 every
方法来判断数组中的所有元素是否大于 0
。
const arr = [1, 3, 5, 7, 9]; const allItemsGreaterThanZero = arr.every((item) => { return item > 0; }); console.log(allItemsGreaterThanZero); // 输出 true
此示例使用箭头函数来实现回调函数。由于数组中的每个元素都大于 0
,所以该函数返回 true
。
总结
ES7 中的 Array.prototype.some
和 Array.prototype.every
方法为开发人员提供了一个灵活的方式来查找数组中的元素。这会大大增加代码的可读性,重复性和维护性。我们可以使用这两个方法轻松地完成一些简单的任务,并且可以将它们与其他高级方法一起使用以实现更复杂的分析。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6480535248841e9894fce574