这篇翻译不完整。请帮忙从英语翻译这篇文章

这个 some() 方法检测 TypedArray 的一些元素是否通过所提供函数的测试. 这个方法和 Array.prototype.some() 相同. TypedArraytyped array types 之一.

 

语法

typedarray.some(callback[, thisArg])

参数

callback
一个测试每个元素的函数,有3个参数:
currentValue
在typed array中,正在被测试的元素.
index
在typed array中,正在被测试元素的索引.
array
正在被调用的 typed array 本身.
thisArg
可选的. callback  回调函数的 this 值 .

返回值

true 如果 callback 函数以任一数组元素为参数调用时,返回 truthy; 否则, false.

描述

对于 typed array 中的每个元素,some方法执行一次 callback,直到找到一个callback 返回 true 的元素. 如果一个元素被找到, some 立即返回 true. 否则, some 返回 false.

callback 期望3个参数: 元素的值, 元素的索引, 和被遍历的数组对象.

如果 some 提供 thisArg, 那么thisArg会作为 callback 调用时的this值. 否则, callback 调用时的 thisundefined.  callback 最终可观测的this 是根据  确定函数this的通常规则 所确定的.

some 被调用不会改变 typed array .

示例

Testing size of all typed array elements

以下示例测试typed array中的所有元素都大于10.

function isBiggerThan10(element, index, array) {
  return element > 10;
}
new Uint8Array([2, 5, 8, 1, 4]).some(isBiggerThan10); // false
new Uint8Array([12, 5, 8, 1, 4]).some(isBiggerThan10); // true

Testing typed array elements using arrow functions

Arrow functions 提供更段的语法做相同的测试.

new Uint8Array([2, 5, 8, 1, 4]).some(elem => elem > 10); // false
new Uint8Array([12, 5, 8, 1, 4]).some(elem => elem > 10); // true

Polyfill

由于没有名为 TypedArray 的全局对象, 必须在“as needed”的基础上进行填充.

// https://tc39.github.io/ecma262/#sec-%typedarray%.prototype.some
if (!Uint8Array.prototype.some) {
  Object.defineProperty(Uint8Array.prototype, 'some', {
    value: Array.prototype.some
  });
}

假如你需要支持的过时JavaScript引擎不支持Object.defineProperty,最好不要使用Array.prototype方法填充,因为你不能让它们不可枚举.

标准

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
TypedArray.prototype.some
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
TypedArray.prototype.some
Draft  

浏览器兼容

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Basic supportChrome Full support 45Edge Full support 14Firefox Full support 37IE No support NoOpera Full support 32Safari Full support 10WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android Full support 37Opera Android No support NoSafari iOS Full support 10Samsung Internet Android ? nodejs Full support 4.0.0

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown

参阅

文档标签和贡献者

此页面的贡献者: rockSandy
最后编辑者: rockSandy,