プログラミングの問題を解くサイトで問題を解いています。
与えられた配列の中の0を配列の末尾に移動するプログラムを作成しています。
例
JavaScript
1moveZeros([false,1,0,1,2,0,1,3,"a"]) // returns[false,1,1,2,1,3,"a",0,0]
現在、以下のようなコードを書いているのですが、
JavaScript
1var moveZeros = function (arr) { 2 var org = arr.length; 3 var res = arr.filter(x => ( x != 0 || x == false ) ); 4 var count = org - res.length 5 for (var i = 0; i < count ; i++){ 6 res.push(0) 7 } 8 return res; 9}
arrの配列が以下のとき、
[ 0, 1, null, 2, false, 1, 0 ]
現行のコードだと、返り値が
[1,null,2,1,0,0,0]
となり、falseが抜けてしまいます。
arr.filter(x => ( x != 0 || x == false ) );
ではfalseは抽出できないということでしょうか?
「filter 複数条件」などで検索しても情報が出てこないため質問させていただきました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。