Javascript数组找到替代方案

时间:2016-01-27 15:46:37

标签: javascript arrays find

我正在寻找数组的find()方法的替代方法。我在Android浏览器上使用它,而Array.prototype.find()在那里不起作用。 Definition Array Support

var test= this.arrayOfValues.find(function (value) {
            return (value.name === device.value)
});

1 个答案:

答案 0 :(得分:1)

如果您对自己的编程不太在意,并且indexOf在某种程度上无法使用,请查看Underscore.js#find。作为替代方案,正如@NinaScholz在评论中建议的那样,使用Polyfill from mozilla.org

if (!Array.prototype.find) {
  Array.prototype.find = function(predicate) {
    if (this === null) {
      throw new TypeError('Array.prototype.find called on null or undefined');
    }
    if (typeof predicate !== 'function') {
      throw new TypeError('predicate must be a function');
    }
    var list = Object(this);
    var length = list.length >>> 0;
    var thisArg = arguments[1];
    var value;

    for (var i = 0; i < length; i++) {
      value = list[i];
      if (predicate.call(thisArg, value, i, list)) {
        return value;
      }
    }
    return undefined;
  };
}