JS every()
**every()**
方法测试类型化数组的所有元素是否都能够通过由提供函数实现的测试。这个方法的算法与 Array.prototype.every()
相同。 TypedArray 是这里的 类型化数组类型 之一。
语法
typedarray.every(callback[, thisArg])
参数
callback
用于测试每个元素的函数,接受三个参数:
currentValue
要处理的类型化数组的当前元素。
index
要处理的当前元素在类型化数组中的下标
array
every 在其上调用的类型化数组
thisArg
可选,执行 callback
时的 this
值。
返回值
如果函数对数组每个元素返回 truthy ,则为**true**
,否则为 **false**
。
描述
every
方法为类型化数组中的每个元素执行一次 callback
函数,直到它找到一个使 callback
返回 false(表示可转换为布尔值 false 的值)的元素。如果发现了一个这样的元素,every
方法将会立即返回 false
。否则,callback
为每一个元素返回 true
,every
就会返回 true
。callback
只会为那些已经被赋值的索引调用。不会为那些被删除或从来没被赋值的索引调用。
callback
以三个参数调用:元素的值,元素索引,以及要遍历的数组对象。
如果将thisArg
参数提供给every
,它会在调用时传递给callback
,作为它的 this
值。否则,会传递undefined
作为它的this
值。 callback
最终观测到的this
值由 [用于决定函数可见的this
值的一般规则]来决定。
every
不修改在其上调用的类型化数组。
示例
测试类型化数组所有元素的大小
下面的示例测试了类型化数组所有元素是否大于 10。
function isBigEnough(element, index, array) {
return element >= 10;
}
new Uint8Array([12, 5, 8, 130, 44]).every(isBigEnough); // false
new Uint8Array([12, 54, 18, 130, 44]).every(isBigEnough); // true
使用箭头函数测试类型化数组的元素
[箭头函数]为相同测试提供了更短的语法。
new Uint8Array([12, 5, 8, 130, 44]).every(elem => elem >= 10); // false
new Uint8Array([12, 54, 18, 130, 44]).every(elem => elem >= 10); // true
规范
Specification | Status | Comment |
---|---|---|
[ECMAScript 2015 (6th Edition, ECMA-262) | ||
TypedArray.prototype.every](https://www.ecma-international.org/ecma-262/6.0/#sec-%typedarray%.prototype.every) | Standard | 初始定义。 |
[ECMAScript Latest Draft (ECMA-262) | ||
TypedArray.prototype.every](https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.every) | Draft |
浏览器兼容性
We’re converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven’t yet converted the data it contains.
- Desktop
- Mobile
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 45.0 | 37 (37) | 未实现 | 36.0 | 未实现 |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 未实现 | 未实现 | 37 (37) | 未实现 | 未实现 | 未实现 |