2017-07-08 5 views
0

このコードは、配列からすべての偽の値を削除することになっています。 私はそれに近づくのですか、私は何をやっているのですか?私は後であきらめるだけで近づく傾向があります。Falsy Freecodecampアルゴリズムチャレンジ

function bouncer(arr) { 

var bouncer = arr.filter(function(bouncer)undefined, null, NaN, 0, "", false); return arr; } 

bouncer([7, "ate", "", false, 9]); 
+0

ジャスト 'arr.filter(Eを使用します=> e) '。 – Tushar

+0

試したときに何が起こったのですか? –

+0

SyntaxError:予期しない識別子です。 –

答えて

0

ブールでフィルタしようとします。それはうまくいくはずです。あなたは私の意見で問題を複雑にしています。このを見てください。 BooleanキーワードはJSで実装され、指定された値が有効な引数であるかどうかを単純にチェックします。 Booleanキーワードhereについて詳しくは、こちらをご覧ください。

alertの代わりに、returnまたはconsole.logを使用するか、thisのようにサイトのフィールドに値を指定することもできます。あなたはそれが何が起こっているか(あなたに)明白かつ明確だように、あなたのコードを書くべきであるコーディングする学習している場合は

+0

私はブールを使用することを最初の挑戦が示唆したことはありません。助けてくれてありがとう。 –

+0

ええ、問題ありません。誰かが私と同じ道を歩くのを助けてくれてうれしい。こうした挑戦に幸運を祈る。 – hansTheFranz

+0

@OriginalName、これがあなたのケースに役立つと思うなら、彼/彼女の答えを親切に記入してください:https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 – eeya

0

これは本当に答え、ちょうどアドバイス...

ではありません。例えば、ここで少し知識をひけらかすうまくいけば理解しやすいですいくつかのコードです:

function copy_truthies(in_values) { 
    let out_values = []; 

    in_values.forEach(value => { 
    if (value) { 
     out_values.push(value); 
    } 
    }); 

    return out_values; 
} 

let all_values = [7, "ate", "", false, 9]; 
let truthy_values = copy_truthies(all_values); 
console.log(truthy_values); 

Tusharのソリューションは、慣用的なエレガントで、同じことを行い、しかし、それはすぐにちょうど出始め、誰かに理解されない場合があります。

console.log([7, "ate", "", false, 9].filter(e=>e)) 

ちょうどそれを数ヶ月を与え、あなたはワンライナーで流暢に考えることでしょう:)

関連する問題