javascript - JS有什么办法可以快速找出数组里是否有某个值?
天蓬老师
天蓬老师 2017-04-10 14:48:16
[JavaScript讨论组]

JS有什么办法可以快速找出数组里是否有某个值?
这是我常用的方法,感觉好累赘,有没有社么好办法?

function contains(arr, val) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] === val) {
            return true;
        }
    }
}
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(6)
天蓬老师
jsfunction contains(arr, val) {
  if (arr.indexOf(val) !== -1) {
    return true;
  } else {
    return false;
  }
}
PHP中文网

http://underscorejs.org/#some

http://underscorejs.org/#contains

阿神
var arr = [1, 2, 3, 4, 5, 6, 7];    // array
var wanted = 8;    // any value you want to check

// console.log `true` if found, otherwise `false`
// Browser compatibility: IE9+
console.log(arr.some(function(item) { return item === wanted; }));

// console.log `index` of the value if found, otherwise -1.
// Browser compatibility: IE9+
console.log(arr.indexOf(wanted));
PHPz
Array.prototype.in_array = function(search) {
    for(i=0; i<this.length; i++) {
        if(this[i]==search) {
            return true;
        }
    }
    return false;
}

给Array增加一个原型方法,这样所有的数组都通用了,和原生的一些通用Array方法都通用了

怪我咯
jsArray.prototype.includes()

好吧,这是一个Harmony (ECMAScript 7) proposal。

Polyfill:

jsif (![].includes) {
  Array.prototype.includes = function(searchElement /*, fromIndex*/ ) {
    if (this === undefined || this === null) {
      throw new TypeError('Cannot convert this value to object');
    }
    var O = Object(this);
    var len = parseInt(O.length) || 0;
    if (len === 0) {
      return false;
    }
    var n = parseInt(arguments[1]) || 0;
    var k;
    if (n >= 0) {
      k = n;
    } else {
      k = len + n;
      if (k < 0) k = 0;
    }
    while (k < len) {
      var currentElement = O[k];
      if (searchElement === currentElement ||
         (searchElement !== searchElement && currentElement !== currentElement)) {
        return true;
      }
      k++;
    }
    return false;
  }
}

参考链接:
MDN - Array.prototype.includes()

伊谢尔伦

可以使用array的indexOf方法,参考

JavaScript查找数组是否存在指定元素

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号