2017-06-05 5 views
1

私は私の条件がtrueの場合にのみ、私のカウンターを増やしたいループ内の特定の条件に基づいてArray.map繰り返しを使用してインデックスカウントのインクリメントを停止する方法はありますか?

Array.map((obj, index) => (
    condition === true ? 
    default index counter increment 
    : do not increase index count 
)) 

、このための周りのすべての作業はありますか?私は問題に直面しています。オブジェクトに基づいて行に代替色を追加したいときや、特定のオブジェクトを拒否して行を作成しない場合は、行が作成されずにカウンタが増え、色がその行は実際には存在せず、UIの欠陥を生成します。

答えて

1

あなたが単一の値ではなく、すべてのundefined値を持つ新しい配列を必要とするので、あなたは、

var count = array.reduce(function (r, a, i) { 
    return r + (condition); 
}, 0); 

の代わりArray#mapのように、カウンターでArray#reduceを使用することができます。

2

あなたはArray.prototype.forEach()を使用し、1で配列1のすべての要素に適用される「条件」に基づいてcounter変数インクリメントできます

let counter = 0; 
Array.forEach((o, i) => condition && counter++); 
関連する問題