2017-09-05 52 views
-1

我在我的水壶勺子ETL流程使用该Java脚本。但始终只有if语句的工作,否则,如果不工作,什么问题呢?为什么这个如果else语句不工作 - 水壶的JavaScript

var type1 = ''; 
var type2 = ''; 
var category1 = [1, 2, 3, 4, 5, 6, 7, 8, 50, 53]; 
var category2 = [10, 11, 12, 13, 14, 15, 56]; 

if (sub_type_id in category1) { 
type1 = 'type-res';} 
else if (sub_type_id in category2) { 
type1 = 'type-ren';} 
else type1 = ''; 

sub_type_id看起来是这样的..

enter image description here

+0

什么是'sub_type_id'? –

+0

这将有值1,2,3,4一样.. –

回答

1

因为在JavaScript中,用于阵列中的阵列不检查值in运营商,它会检查索引。

请参见:

var category1 = [1, 2, 3, 4, 5, 6, 7, 8, 50, 53]; 
var sub_type_id = 50; 
console.log(sub_type_id in category); // you get false 

看到这更清楚,如果你这样做:

for (i in category1) { 
    console.log(i); 
} 

什么是印刷是0〜9,这是指数,而不是实际值。

您需要在阵列中使用indexOf

尝试:

if(category1.indexOf(sub_type_id) !== -1) { 
    // do something 
} else if (category2.indexOf(sub_type_id) !== -1) { 
    // do something 
} else { 
    // do something 
} 
+0

让我试试这个。谢谢。 –

+0

它不工作。 。:(现在,即使语句不工作空单元格 –

+0

你能给我你使用sub_type_id'的'一些例子 –