javascript - 获取数组内的元素并与数字进行比较

标签 javascript jquery arrays loops

我需要将数字与数组内的元素进行比较。我正在尝试循环数组,但它不起作用。我在这里举了一个例子。我在想如果我在数组中找到相同的数字它就会起作用。我的意思是我期望示例中的蓝色,但它是黄色的。我怎样才能让它工作?

var rain =  [1072,1050,1053,1168,1080,1183,1171,1063,1083,1086,1089,1240,1273];
var number = 1072;

for (var j = 0; j < rain.length; j++) {
  if (number == rain[j]) {
    $('body').css('background', 'blue');
  } else {
    $('body').css('background', 'yellow');
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

最佳答案

它是黄色的,因为您的 for 循环仍在运行,即使在找到 1072 后也是如此。基本上,如果 rain 数组中的最后一个元素与给定的 number 相同,并且只有最后一个元素与给定的 number 相同,则您的函数会更改颜色,因为它是在for 循环。 如果您希望循环在找到号码时停止,您可以在其中添加返回语句。

但是还有其他两种方法:

if(rain.indexOf(number) !== -1){
  //change color to yellow
}else{
  //change color to blue
}

或者,正如 Sterling Archer 所说,使用 includes

关于javascript - 获取数组内的元素并与数字进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41774043/

相关文章:

javascript - 单击浏览表单时添加所需的属性

jquery - 如何获取元素顶部的位置(以像素为单位)?

javascript - 从元素中删除类而不影响正在进行的 css 转换

javascript - 将具有相同类的所有 div 插入数组?

javascript - 如何从map函数中的对象获取key?

c - 当编译时宽度未知时,如何编写接受二维数组的函数?

javascript - Angular : accessing global variable within html template

javascript - 如何正确解析 bs-typeahead 的 javascript promise

javascript - 外部 Bootstrap 弹出窗口(https ://github. com/kartik-v/bootstrap-popover-x)方法和事件不起作用?

javascript - JSDOM + Ava – 全局依赖 `document`的测试函数