检查数组中是否存在某个元素

6
我需要检查主数组中是否存在特定值。
示例: 点击此处
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)) - rule
3个回答

6
if(listCategoryId.indexOf(actualCategoryId) != -1) {
  console.log('exists')
}

是的。就是那样。 - yBrodsky

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();


1
你可以使用 $.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
@vlaz 修复了它... 感谢指出。 - Rajshekar Reddy
没关系。它也把我卡住了(我开始写答案,但人们在我完成之前就发帖了)。我知道 $.inArray 函数,但是(基于名称),我假设它返回一个布尔值而不是索引...我把混淆归咎于 jQuery。 - VLAZ
@vlaz 确实,这个名称听起来像是会返回 true 或 false,但它实际上返回的是匹配项的索引。 - Rajshekar Reddy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接