阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS some()

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

      The source for this interactive example is stored in a GitHub repository. If you’d like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

      语法

      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方法填充,因为你不能让它们不可枚举.

      标准

      SpecificationStatusComment
      [ECMAScript 2015 (6th Edition, ECMA-262)
      TypedArray.prototype.some](https://www.ecma-international.org/ecma-262/6.0/#sec-%typedarray%.prototype.some)StandardInitial definition.
      [ECMAScript Latest Draft (ECMA-262)
      TypedArray.prototype.some](https://tc39.es/ecma262/#sec-%typedarray%.prototype.some)Draft 

      浏览器兼容

      The compatibility table on this page is generated from structured data. If you’d like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

      Update compatibility data on GitHub

      DesktopMobileServer
      ChromeEdgeFirefox
      someChrome Full support 45Edge Full support 14Firefox Full support 37

      Legend

      Full support  

      Full support

      No support  

      No support

      参阅

      目录
      目录