why this if else statement not working - kettle javascript
本问题已经有最佳答案,请猛点这里访问。
我在我的釜勺ETL工作流中使用这个Java脚本。但总是只有if语句有效,否则如果不有效,这有什么问题?
1 2 3 4 5 6 7 8 9 10 | 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 = ''; |
子类型的ID如下所示。
因为在javascript中,用于数组的
见:
1 2 3 | 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 |
要更清楚地看到这一点,如果您这样做:
1 2 3 | for (i in category1) { console.log(i); } |
打印的是0~9,这是索引,而不是实际值。
您需要在数组上使用
尝试:
1 2 3 4 5 6 7 | if(category1.indexOf(sub_type_id) !== -1) { // do something } else if (category2.indexOf(sub_type_id) !== -1) { // do something } else { // do something } |