작성
·
134
2
function getExpensiveProducts(products){
for(var i = 0; i < products.length ;i++){
var newProducts = [];
var product = products[i];
var price = product.price;
if(price >= 60000){
newProducts.push(product)
return newProducts;
}
}
}
answer로 올려주신 코드에서
var newProducts = [ ]; 이 부분이랑
return newProducts;
이 부분을 괄호 안쪽에 넣어두면 반환되어야하는 배열 객체 두개 중에서 하나밖에 반환이 되지 않는데 왜 그런지 궁금합니다
답변 1
1
안녕하세요. return 은 기본적으로 함수의 실행을 종료하는 구문입니다. 따라서 return을 하는 이후 동작은 종료되게 되어있습니다.
현재 올려주신 코드에서 for문 안에 return을 넣으면 뒤에 더 순회할 수 있는 동작이 수행되지 않고 종료됩니다. 따라서 return은 for문이 끝난 마지막에 넣어줘야 정상적으로 동작됩니다.
마찬가지로 newProducts는 반복문을 통해 데이터를 전부 넣은 후 return해주는 것이 목표임으로 for문 안에 넣지 않고 밖에 넣습니다.