javascriptで何らかの配列に対する処理を書いて、
filttered = [];
[1,2,3,4].forEach((i) => {
//1,3以外を取得
if ([1,3].indexOf(i) < 0) {
filttered.push(i);
}
});
console.log(filttered); //[2,4]
で、これはfilterで行けると思い修正
filttered =
[1,2,3,4].filter((i) => {
//1,3以外を取得
return [1,3].indexOf(i) < 0;
});
console.log(filttered); //[2,4]
さらに、1行で済むよねと思い修正
//1,3以外を取得
filttered =
[1,2,3,4].filter((i) => {[1,3].indexOf(i) < 0 });
console.log(filttered); //[] ????
突然値が返らなくなり焦ることがあります。
理由は単純でブロック {}
を残してるのに return
が無いから
lambdaでreturnを省略する時は{}を外すのを忘れずに!
//1,3以外を取得
filttered =
[1,2,3,4].filter((i) => [1,3].indexOf(i) < 0);
console.log(filttered); //[2,4]