为JavaScript数组中的每个不同值赋予变量不同的值

时间:2017-09-10 17:54:37

标签: javascript php mysql arrays json

我有一个包含超过一百万个条目的JS数组。

我希望JavaScript为数组中的每个不同值分配特定颜色以标记

说我的数组包含这个:

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 :(得分:1)

Easy 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];