【问题标题】:Check if an item exists in the array [duplicate]检查数组中是否存在项目[重复]
【发布时间】:2016-12-02 13:42:08
【问题描述】:

我需要检查主数组中是否存在特定值。

Example:

var hideFilters = function() {
    var listCategoryId = ['1000014', '1000015', '1000016', '1000017', '1000018', '1000019', '1000021', '1000086'];

    var actualCategoryId = '1000018';

    if (actualCategoryId === listCategoryId) {
        console.log('is equal');
    } else {
        console.log('fuen... fuen...');
    }
};

hideFilters();

【问题讨论】:

  • if(actualCategoryId.includes(actualCategoryId))

标签: javascript jquery arrays


【解决方案1】:
if(listCategoryId.indexOf(actualCategoryId) != -1) {
  console.log('exists')
}

【讨论】:

  • 是的。就是这样。
【解决方案2】:

如果Array.prototype.indexOf() 返回大于或等于0 的索引,则数组包含指定的元素。否则它将返回 -1:

var hideFilters = function() {
  var listCategoryId = ['1000014', '1000015', '1000016', '1000017', '1000018', '1000019', '1000021', '1000086'];

  var actualCategoryId = '1000018';

  if (listCategoryId.indexOf(actualCategoryId) > -1) {
    console.log('is equal');
  } else {
    console.log('fuen... fuen...');
  }
};

hideFilters();

【讨论】:

    【解决方案3】:

    您可以使用$.inArray

    var listCategoryId = ['1000014', '1000015', '1000016', '1000017', '1000018', '1000019', '1000021', '1000086'];
    
    var actualCategoryId = '1000018';
    
    if ($.inArray(actualCategoryId, listCategoryId) != -1) {
      console.log('exists');
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

    【讨论】:

    • 如果你用"1000014" 运行它,它会声称它不存在,因为$.inArray().indexOf 一样工作
    • @vlaz 已修复.. 感谢您指出
    • 不用担心。它也抓住了我(我开始写一个答案,但人们在我写完之前就发布了)。我知道 of $.inArray 函数,但是(基于名称)我认为它返回的是布尔值而不是索引...我将混乱归咎于 jQuery。
    • @vlaz true,名字听上去好像会返回true或者false,但是返回的是匹配的索引。
    猜你喜欢
    • 1970-01-01
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    相关资源
    最近更新 更多