私はこのループをコード内に入れていますが、中括弧なしで正しく動作します(時間をかけて)。forTheScope関数では中括弧では機能しません。理由を知りたいのですか?フィルタメソッドの中括弧の有無にかかわらずループが異なる方法で動作しますか?
function destroyer(arr) {
// Remove all the values
a=[];
for(var b=0; b<arguments.length; b++) {
a.push(arguments[b]);
}
function forTheScope(item) {
debugger;
for (var m = 1; m < a.length; m++) // this for loop works
if (item == a[m]) // but when i put curly braces, it doesn't?
return false; //
return true; //
}
/*===== This is the for loop with braces =====
function forTheScope(item) {
debugger;
for (var m = 1; m < a.length; m++) {
if (item == a[m]) {
return false;
} else {
return true;
}
}
}
========== End of the loop ==========*/
return a[0].filter(function filterArray(item,index,array) {
return forTheScope(item);
});
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
動作しないコードのバージョンを投稿してください。 '{}}をどのように*追加したかによって決まります。 – Pointy
@Pointy私の編集 – learningjavascriptks
OKを参照してください。答えを更新してください。 – Pointy