我需要在数组与数组内的元素之间进行比较。我试图循环数组但它不起作用。我在这里举了一个例子。我在想如果我在阵列中找到相同的数字它会起作用。我的意思是我希望蓝色在示例中,但它的黄色。我怎样才能使它发挥作用?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
// Add "Duplicate Record " to either the input title field or input name field - depending on if either exist, otherwise find the first text field.
var $e = $(this);
if ( $e.is("input[name='title']") ) {
var selector = "input[name='title']";
}
else if ( $e.is("input[name='name']") ) {
var selector = "input[name='name']";
}
else {
var selector = "input[type=text]:first";
}
var oldValue = $(selector).val();
var newValue = "<?php echo escapeJs(t('Duplicate Record ')); ?>" + oldValue;
$(selector).val(newValue);
&#13;
答案 0 :(得分:2)
您可以使用Array.includes()执行此操作。如果为true,则代码的问题是没有break语句,因此它会一直运行并最终以最终数字结束,这是决策者。
var rain = [1072,1050,1053,1168,1080,1183,1171,1063,1083,1086,1089,1240,1273];
var number = 1072;
if (rain.includes(number)) {
$('body').css('background', 'blue');
} else {
$('body').css('background', 'yellow');
}
答案 1 :(得分:2)
它是黄色的,因为即使在找到for
之后,您的1072
循环也会继续运行。基本上,如果rain
数组中的最后一个元素与给定number
中的最后一个元素相同,则函数会更改颜色,因为它是for
循环中查看的最后一个值。
如果你想在找到数字时停止循环,你可以在那里添加一个return语句。
但还有另外两种方法:
if(rain.indexOf(number) !== -1){
//change color to yellow
}else{
//change color to blue
}
或者,正如Sterling Archer所说,使用includes