2016-02-11 26 views
0

有人請向我解釋爲什麼我的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); 

謝謝!

+0

這是比較反對的第一個元素奇怪。 var DEFINITIONS = [[1],[2],[3]];這是你家庭作業的一部分嗎? – jjwdesign

+0

是的,它的功課:) – Vera

回答

2

這是因爲你比較hsl,這似乎是一個數字,一個數組。你有效地這樣做:

hsl === [1] 
hsl === [2] 
hsl === [3] 

如果你想比較對個人號碼,無論是重新定義DEFINITIONS

var DEFINITIONS = [1, 2, 3]; 

或者在它

DEFINITIONS[x][0] === hsl 
+0

謝謝你,只是一直盯着這太久......謝謝! :) – Vera

1

DEFINITIONS是一個數組數組。你需要if(DEFINITIONS[x][0]===hsl){

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][0]===hsl){ 
        sum2++; 
       } 
      } 
     } 
    }); 
    console.log(sum2, sumSaturated); 
} 

getAttributes(colors);