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

这个 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  

浏览器兼容

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support451437 No3210
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support ? ? ?37 No10 ?

参阅

文档标签和贡献者

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