Так как сделать это предупреждение code1, code2 и code3? Я имею в виду это предупреждение значение a, b и c?
Лучше использовать массив вместо дискретных code1
, code2
и code3
переменных: (. Обратите внимание, что я начал y
в другом месте)
// (I assume a, b, and c have already been declared somewhere, or that your real
// code has literals?)
var codes = [a, b, c];
var y;
for (y = 0; y < codes.length; y++) {
alert(codes[y]);
}
В то время как возможно, чтобы сделать code1
, code2
, code3
вещь с глобальными переменными, глобальные переменные следует избегать d, когда это возможно, и это почти всегда возможно. (Это также возможно с локальными переменными, но вы должны использовать eval
или его кузена Function
конструктор, и избежать eval
является также то, что вам следует избегать, когда это возможно, и почти всегда возможно. :-))
Поочередно , если вы оказываетесь желающих сделать это, где массив не совсем имеет смысла, вы можете использовать объект вместо:
var codes = {
code1: a,
code2: b,
code3: c
};
var y;
for (y = 1; y <= 3; ++y) {
alert(codes["code" + y]);
}
это работает, потому что в JavaScript, вы можете получить доступ к свойствам объекта, используя либо точечную нотацию и литерал (obj.foo
) или обозначение скобок и строка (obj["foo"]
), и в последнем случае строка может быть результатом любого выражения. Поскольку "code" + y
является code1
когда y
является 1
, codes["code" + y]
смотрит свойство "code1"
на codes
(когда y
является 1
).
Это будет * только * работать в глобальном масштабе. Если вы находитесь в какой-либо области функций, * это не сработает. * Хотя ответ правилен в теории, было бы гораздо лучше рекомендовать OP использовать объект вручную, вместо того, чтобы полагаться на 'window'. –
Сфера применения, а также просто обучение плохому использованию javascript для новичка может быть причиной –
@NiettheDarkAbsol Вопрос был: »Итак, как сделать это предупреждением code1, code2 и code3?« И этот код делает, для чего спросил TO , Я нахожу это в порядке, чтобы критиковать его с комментарием. Но пока это решение действительно, я не вижу причин для понижения. –