JavaScript Array.prototype.some()

本文来源于:http://itkaiyuan.com/2016/01/07/527.html 转载注明出处!

some() 方法测试数组中某些元素是否通过了指定函数的测试。

语法

array.some(callback [, thisArg])

参数

 callback
 用来测试每个元素的函数。
 thisArg
 执行callback 时使用的this值。

some为数组中的每一个元素执行一次 callback 函数,知道找到一个使 callback 返回 true 的值。如果找到了这样一个值,some将会立即返回 true。否则 some 返回 false。callback 只会在那些有值的索引上被调用,不会在那些被删除或从来未赋值的索引上调用。

callback被调用时传入三个参数:元素的值、元素的索引、源数组。

some 被调用时不会改变数组。

some 遍历的元素的范围在第一次调用 callback 时就已经确定了。在调用 some 后被添加到数组中得值不会被 callback 访问到。如果数组中存在且还未被访问到的元素被 callback 改变了,则其传递给 callback 的值是 some 访问到它的那一刻的值。

function isBigEnough(element, index, array){
   return element >= 10;
}

var passed = [2,5,8,1,4];
alert(passed.some(isBigEnough));

passed = [12,5,8,1,4];
alert(passed.some(isBigEnough));
function isBigEnough(element, index, array){
  element += 10;
  return element >= 10;
}

var passed = [1,2,3,4,5]
alert(passed.some(isBigEnough));

兼容旧环境

if (!Array.prototype.some)
{
  Array.prototype.some = function(fun /*, thisArg */)
  {
    'use strict';

    if (this === void 0 || this === null)
      throw new TypeError();

    var t = Object(this);
    var len = t.length >>> 0;
    if (typeof fun !== 'function')
      throw new TypeError();

    var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
    for (var i = 0; i < len; i++)
    {
      if (i in t && fun.call(thisArg, t[i], i, t))
        return true;
    }

    return false;
  };
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值