私は以下の実装をしました。どのようにjavascript配列の空白の要素を削除するには?
Array.prototype.abc = function(condition, t){
var arr = [];
for(var i = 0; i < this.length; i++){
arr.push(condition(this[i],t));
}
return arr;
};
var a = [1,2,3,4];
var t = 2;
alert(a.abc(function(item,diviser){
if(item % diviser === 0) { return item; }
},t));
結果は[2,4]
である必要があります。代わりに私は[,2,,4]
を得ています。
私は以下の条件を試しましたが、常に上記の結果を返します。
if(condition(this[i],t) !== false){ arr.push(condition(this[i],t)); }
この私が
if(item % diviser === 0) { return item; } else { return false; }
を行う際false
条件は私が他の部分に戻る任意の値'false'
またはtrue
または'true'
またはそのことについては仕事をdoesnotやっています。実際の実装では私はelse
の部分を持っていません。空のセクションを削除するにはsplice
か何かを使うことができます。しかし、なぜ私は空白が作成されて何も戻っていない場合でも私は理解していない。そして、使用した後であっても、arr.push
の前の状態では動作しません。正確に何が起こっているのか、配列内のブランクを削除する方法は?
私が 'else {return false;を返すと'!== false'と比較しようとしました。 } '。しかし、これは機能しません。どうしてこんなことに? – Sp0T
ok。ありがとう。今理解した。 – Sp0T
@ Sp0Tこのスニペット、 'condition(this [i]、t)&& arr.push(this [i]);'がメイン配列にある場合、これは '0'を無視します。 –