栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

查找项目是否在JavaScript数组中的最佳方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

查找项目是否在JavaScript数组中的最佳方法?

从ECMAscript 2016开始,您可以使用

includes()

arr.includes(obj);

如果要支持IE或其他较旧的浏览器:

function include(arr,obj) {    return (arr.indexOf(obj) != -1);}

编辑:这将无法在IE6、7或8上运行。最好的解决方法是自行定义它(如果不存在):

  1. Mozilla)版本:

      if (!Array.prototype.indexOf)

    {

       Array.prototype.indexOf = function(searchElement ){"use strict";if (this === void 0 || this === null)  throw new TypeError();var t = Object(this);var len = t.length >>> 0;if (len === 0)  return -1;var n = 0;if (arguments.length > 0){  n = Number(arguments[1]);  if (n !== n)    n = 0;  else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0))    n = (n > 0 || -1) * Math.floor(Math.abs(n));}if (n >= len)  return -1;var k = n >= 0      ? n      : Math.max(len - Math.abs(n), 0);for (; k < len; k++){  if (k in t && t[k] === searchElement)    return k;}return -1;

    };

    }

  2. Daniel James的版本:

    if (!Array.prototype.indexOf) {

    Array.prototype.indexOf = function (obj, fromIndex) {
    if (fromIndex == null) {
    fromIndex = 0;
    } else if (fromIndex < 0) {
    fromIndex = Math.max(0, this.length + fromIndex);
    }
    for (var i = fromIndex, j = this.length; i < j; i++) {
    if (this[i] === obj)
    return i;
    }
    return -1;
    };
    }


  3. roosteronacid’s 版本:

    Array.prototype.hasObject = (

    !Array.indexOf ? function (o)
    {
    var l = this.length + 1;
    while (l -= 1)
    {
    if (this[l - 1] === o)
    {
    return true;
    }
    }
    return false;
    } : function (o)
    {
    return (this.indexOf(o) !== -1);
    }
    );



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415910.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号