我有一个包含超过一百万个条目的 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 方法也将受到赞赏。
最佳答案
简单的 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];
关于javascript - 对 JavaScript 数组中每个不同值的变量赋予不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46143817/