У меня есть массив 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 раз.
обратите внимание, что я знаю, что флаг будет переопределен, и флаг в моем коде уникален для каждого другого значения.
Также обратите внимание, что массив импортируется как данные JSON из таблицы MySQL с использованием PHP, поэтому любые подходы 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, вы должны использовать join
чтобы получить правильные флаги.
И, кстати, вам не нужно new Array
синтаксис. просто делать:
var foo = [10,20,30,40,50,36,60,70,80,90,100];
Других решений пока нет …