有人可以向我解释为什么我的sum2变量的值为0吗?我期望它是1。
var colors = [1,2,3,4,5];
var DEFINITIONS = [[1],[2],[3]];
function getAttributes(colors){
var sumSaturated = 0;
var sum2 = 0;
colors.forEach(function(hsl) {
if(hsl>2){
sumSaturated ++;
for(var x = 0; x<DEFINITIONS.length; x++){
if(DEFINITIONS[x]===hsl){
sum2++;
}
}
}
});
console.log(sum2, sumSaturated);
}
getAttributes(colors);
谢谢!
最佳答案
这是因为您正在将似乎是数字的hsl
与数组进行比较。您实际上是在这样做:
hsl === [1]
hsl === [2]
hsl === [3]
如果要与单个数字进行比较,请重新定义
DEFINITIONS
var DEFINITIONS = [1, 2, 3];
或者与其中的第一个元素进行比较
DEFINITIONS[x][0] === hsl
关于javascript - 给定条件更新变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35350692/