2017-09-05 4 views
-1

나는이 주전자 숟가락 ETL 워크 플로우에서이 자바 스크립트를 사용하고 있습니다. 하지만 항상 if 문만 작동합니다. 그렇지 않으면 작동하지 않는 경우이 문제가 무엇입니까?왜이 else 문이 작동하지 않는가요? kettle 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

을 자바 스크립트에서 배열의 값을 체크하지 않는 배열에 사용 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'의 예를 몇 개 주시겠습니까? –