-2
다음은 첫 번째 인수에서 제거하는 프로그램으로, 연속 된 인수와 동일한 요소 인 항상 배열입니다. 다음 코드를 실행하면 첫 번째 인수와 동일한 값만 입력 배열 (첫 번째 인수)에서 제거되지만 나머지는 손상되지 않습니다. 내가 루프의 내부에 다음 코드를 사용할 때배열의 .filter 함수에서 for 루프는 어떻게 끝나나요?
function destroyer(arr) {
// Remove all the values
var i;
var arr = Array.prototype.slice.call(arguments);
var arr_req = arr[0];
arr_req = arr_req.filter(function(val) {
for(i = 1; i < arr.length; i++) {
if(val === arr[i]) {
return false;
} else {
return true;
}
}
});
return arr_req;
}
console.log(destroyer([1, 2, 3, 1, 2, 3], 2, 3));
는하지만, 나는 왜이 첫 번째 경우에서 얻은 정확한 결과 아닌 올바른 예상 출력, 즉 그래서 [1,1]
arr_req = arr_req.filter(function(val) {
for(i = 1; i < arr.length; i++) {
if(val === arr[i]) {
return false;
}
}
return true;
});
입니다 얻을 ? 후자와 같지 않습니까? 나는 JavaScript가 처음이다. 아무도 설명 할 수 있을까요?
첫 번째 경우 'for' 루프는 한 번만 실행됩니다. 거기에있는'return' 문은 루프를 파괴합니다. – Cerbrus