javascript - 对 JavaScript 数组中每个不同值的变量赋予不同的值

标签 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 方法也将受到赞赏。

最佳答案

简单的 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/

相关文章:

javascript - 如何禁用点击按钮?

php - 通知 : Undefined index when trying to increment an associative array in PHP

php - CodeIgniter 的 View helper 的良好逻辑

mysql - 将数据从excel导出到mysql

javascript - 在 Highcharts 中缩放时获取选定的点索引

javascript - React Native Android Webview 视频

php - Symfony Doctrine i18n 行为数据加载失败 : Integrity constraint violation

javascript - Node.js - 跳出回调函数并在父函数中返回 true/false

javascript - 用 Jasmine 测试 jQuery Hover

php - Intranet 系统的用户界面