2013-02-17 5 views
-1

В PHP я могу сделать что-то вроде:Javascript - возможно ли получить доступ к массиву, например var b = 'opt' + 5; оповещение (б [61]) ;?

$name = "options{$a}"; // or "options" . $a, doesn't matter 

for ($i = 0; $i < count($name[$i]); $i++) { 
    // do something... 
} 

пока options0 существует (предполагающей $ в является или , или что угодно), эта конструкция вполне допустимо , но ... теперь мне нужно сделать то же самое в Javascript, но без успеха на данный момент.

Может ли кто-нибудь сказать мне, как это можно сделать?

+4

Вы можете сделать это с помощью «глобальных» переменных в объекте 'window', но не локальных переменных, объявленных с помощью' var'. В любом случае, я считаю, что это плохая практика, даже в PHP, когда у вас есть замечательная структура данных, называемая 'array', доступной вам. –

+2

Может быть, идея узнать о массивах – Popnoodles

+0

Что значит «до тех пор, пока существуют варианты 0»? Если '$ a' -' 0', то '$ name =" options {$ a} ";' приведет к '$ name', являющемуся ** string **' options0', а не переменной, которая может существовать по именам либо '$ options0', либо' $ options [0] ', если это действительно то, что вы ожидаете. – Popnoodles

ответ

2

Вы можете использовать массивы, как описано в некоторых комментариях, или использовать свойства объекта. Они включают сходные обозначения, но работают по-разному. Например, вы могли бы сделать что-то вроде этого:

var options = { option0 : ['a', 'b', 'c'], 
       option1 : ['d', 'e'], 
       ... 
       }; 
var a = 0; 
var count = options['option' + a].length; // assigns 3 to count 

Этот доступ свойство options имени 'option' + a (или, с этим примером кода, option0).

Хотя вы можете легко вычислить и использовать имена свойств, вы не можете (как указано в комментариях) сделать это с именами локальных переменных.

+0

Спасибо за информацию. Я признаю, что мое объяснение было очень бедным, и я извиняюсь за это. Мне нужна эта «обманка», потому что я хочу заменить OpenCart на использование текстовых полей автозаполнения (теперь это отвратительно) для селектора (который более подходит) для отображения различных параметров продукта и их значений. Проблема заключается в том, что я загружаю селектор параметров с помощью PHP, и теперь я должен знать, к какому идентификатору параметра относится определенный селектор, прежде чем загружать значения параметров во второй селектор. –

+1

@JulioMecaHansen - Почему моя предложенная структура не работает для этого? После того, как я опубликовал сообщение, первый индекс селектора можно использовать для извлечения массива параметров, необходимых для второго селектора. Что мне не хватает? –

+0

Это сработало :) Хотя, в конце концов, я закончил «кодирование» значений, которые мне нужны с разделителем. Это создало альтернативное решение, но эй, твоя работа, плюс это то, что я первоначально искал в начале. Благодаря :) –

 Смежные вопросы

  • Нет связанных вопросов^_^