Javascript, JQuery - вызов позиции массива с использованием имени переменной - PullRequest
1 голос
/ 12 мая 2010

У меня есть 2 массива:

var array1 = [50,60];
var array2 = [120,180];

Я передаю значение в переменную следующим образом:

var curId = $(this).attr('id');

Я хочу установить для содержимого #result следующие вычисления:

$ (# результат) .text (number * curId [0]);

Number - это предопределенная мной переменная, и curId [0] в действительности переводится в array1 [0] или array2 [0] в зависимости от класса css.

Может кто-нибудь сказать мне правильный синтаксис для этого? Я довольно нуб на JS. Спасибо.

Ответы [ 2 ]

1 голос
/ 12 мая 2010

Вы можете использовать переменную для хранения массива, который вы хотите использовать:

var myArray;

if (something)
    myArray = array1;
else
    myArray = array2;

$('#result').text(number * myArray[0]);

Если вы пытаетесь получить массив в переменной из строки, содержащей имя переменной, вы должны использовать объект, например так:

var arrays = {
    array1: [50,60],
    array2: [120,180]
};

var myArray = arrays[curId];

$('#result').text(number * myArray[0]);
0 голосов
/ 12 мая 2010

Итак, curId будет строкой "массив1" или "массив2"? Тогда вы бы сделали это так:

var lookups = {
    array1: [50, 60],
    array2: [120,180]
};

var curId = $(this).attr('id');
$('#result').text(number * lookups[curId[0]]);

Для этого нужно создать объект (lookups), содержащий информацию, которую вы ищете. Этот объект имеет свойства array1 и array1, которые являются вашими массивами. Вы получаете строку «array1» или «array2» из идентификатора вашего элемента в переменную curId, а затем используете тот факт, что Javascript позволяет вам искать свойства по их имени, используя синтаксис []. Все они одинаковы:

a = lookups.array1;
// is the same as
a = lookups["array1"];
// is the same as
a = lookups["array" + "1"];
// is the same as
s = "array1";
a = lookups[s];

Технически, если ваши массивы объявлены в глобальной области видимости, вы могли бы сделать это без использования объекта lookups, но если вы довольно плохо знакомы с Javascript, я не буду вдаваться в подробности, почему бы ни рекомендовал используя один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...