我有一个包含超过一百万个条目的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方法也将受到赞赏。
答案 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];