2017-09-10 3 views
0

私は百万以上のエントリを持つJS配列を持っています。JavaScript配列から異なる値の変数に異なる値を与える

私はJavaScriptを

は私Arrayこのが含まれていることを言うの配列からすべての異なる値にフラグを特定の色を割り当てる:

var foo = new Array([10,20,30,40,50,36,60,70,80,90,100]); 

私の配列は、58異なる値が含まれていることを知っている価値があります。

私はこのような何かをしようとしています:

if (foo.every(10)) flag = "red"; 
if (foo.every(20)) flag = "yellow"; 

私は58回を超える行を繰り返すことなく、アレイ内のすべての値のためにそれを行うための方法が必要です。

フラグがオーバーライドされ、コード内のフラグがすべての異なる値に対して一意であることを知っています。

また、この配列はPHPを使用してMySQLテーブルからJSONデータとしてインポートされるため、この問題に対するPHPのアプローチも高く評価されます。

+1

あなたが探しているのは、値を固有の色にマッピングすることです。可能なすべての値とそれぞれの関連する色の間にキー/値の関連付けをするオブジェクトを作成する必要があります。 –

+0

色の種類を指定する必要があります+配列からすべての一意の値を取得する必要があります。割り当てを繰り返す場合は、色を別々に生成する必要があります。多分ランダムな色ですか? – xEterno

答えて

1

簡単JSソリューション:

var numberToColorDictionary = { 
    10: "red", 
    20: "yellow" 
    ... 
} 

// After this runs, 'flags' should contain all the right flags. 
var flags = foo.map(function(number) { 
    return numberToColorDictionary[number]; 
}); 

が、これはあなたがあなたのデータベースが間違って照会しているように聞こえるん。数値がMySQLのIDである場合は、正しいフラグを取得するためにjoinを使用する必要があります。

ところで、new Arrayの構文は必要ありません。

var foo = [10,20,30,40,50,36,60,70,80,90,100]; 
+0

これは試してみるのが正しいようです。私がデータベースから得た値は、偶数でないidsではありません。我々は更新で分に戻ってくる – Hamzaouiii

+0

それがうまくいけばお知らせください:) – nadavvadan

+0

それは動作します!ありがとうございました。 – Hamzaouiii

関連する問題