2017-05-02 1 views
2

for 루프에 문제가 있습니다. 과일에 대해 num과 일치하는 색인을 반환하고 싶습니다. num=2 일 때 "사과"를 반환하고 싶습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?for 루프는 일치하는 인덱스 번호를 반환합니다.

var num=2; 
    var fruits = ["Banana", "Orange", "Apple", "Mango"]; 
    for (var i=0;i <fruits.length;i++) { 
     if (fruits[i] === num) { 
     console.log("matched, it is" + fruits[num]) 
     } else { 
     console.log("did not match") 
     } 
    } 
+7

왜 루프가 필요합니까? 왜 '열매'가 아닌가? –

+0

약간의 명확성을 추가하기 만하면 fruits [i]는 인덱스 i에있는 과일의 이름을 반환합니다. 그래서 열매는 숫자가 배열에 추가되지 않는 한 결코 num이 될 수 없습니다. – Mark

답변

1

당신은 배열 인덱스 i으로 num을 비교할 수 있습니다

if (i == num) { 
    console.log("matched, it is" + fruits[num]) 
} 
1

if (fruits[i] === num) {...} - fruits[i]i 위치에 fruits 배열 내부의 요소가 아닌 인덱스입니다. 대신 인덱스 i === num과 비교하십시오.

var num = 2, 
 
    fruits = ["Banana", "Orange", "Apple", "Mango"]; 
 
    
 
for (var i = 0; i < fruits.length; i++) { 
 
    if (i === num) { 
 
    console.log("matched, it is " + fruits[num]) 
 
    } else { 
 
    console.log("did not match") 
 
    } 
 
}

2

당신에 대해 확인해야합니다 조건은

if(i === num) 대신 if(fruits[i] === num)입니다.

당신은 num에 대해 fruits 배열의 인덱스 i에서 수 num이 아닌 값에 대한 인덱스 i을 비교합니다.

예 : fruits[0]이 "바나나"이고 fruits[1]이 "오렌지색"인 경우 ... 등등. 당신이 일을하면 2

또한 num 값과, 0,1에서 진행 i의 가치 .. (3)을 비교해야 할 때 num 값 2에 대해 등, "오렌지", ... "바나나"를 비교하는 것입니다 @Kamyar 지적처럼, 직접 아마도 fruits은 외부 소스에서 채워됩니다 경우 전성 검사 후, fruits[num]에 액세스 할 수 있습니다

var num=2; 
 
var fruits = ["Banana", "Orange", "Apple", "Mango"]; 
 
if(fruits != null && num >= 0 && num < fruits.length) { 
 
    console.log("matched, it is " + fruits[num]) 
 
} 
 
else{ 
 
    console.log("did not match") 
 
}

-1

확인할 수있는 루프가 필요하지 않습니다 엘 Ike 이하

var num = 2; // your input value 

if(num >= 0 && num < fruits.length){ 
    console.log("matched, it is" + fruits[num]); 
} else { 
    console.log("did not match"); 
} 
관련 문제