heyujie
2021-05-24 4885600ecc369aa2e30a65de8dd7a410f13c34df
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
"use strict";
 
var callable    = require("../../../object/valid-callable")
  , ensureValue = require("../../../object/valid-value")
  , some        = Array.prototype.some
  , apply       = Function.prototype.apply;
 
module.exports = function (predicate/*, thisArg*/) {
    var k, self;
    self = Object(ensureValue(this));
    callable(predicate);
 
    return some.call(
        self,
        function (value, index) {
            if (apply.call(predicate, this, arguments)) {
                k = index;
                return true;
            }
            return false;
        },
        arguments[1]
    )
        ? k
        : -1;
};