Выберите массив на основе переменной

1

У меня есть умноженные массивы и переменная selector, теперь я хочу выбрать и отобразить соответствующий массив в консоли, например: if (selector == 1) {console.dir(array1)};
Тем не менее, я чувствую, что многие, если предложения, чтобы выбрать массив, являются неэффективными, и мне нужен лучший подход.

  • 1
    Используйте массивы массивов или объектов с ключами. Вы никогда не должны иметь неизвестные имена переменных.
  • 0
    Все еще дубликат stackoverflow.com/questions/5117127/… (несмотря на то, что вопрос вновь открывается)
Теги:
arrays

3 ответа

1
Лучший ответ

Вы можете иметь массив массивов и использовать его (ваш селектор - это в основном целочисленный индекс массива, который вы хотите в основном массиве):

var masterArray = [ [1,2] , [3,4] ];

var selector = 1;

console.log(masterArray[selector]) //logs the second item [3,4]

console.log(masterArray[selector - 1]) //logs the first one [1,2] - use this if your selector is not zero indexed

EDIT: Разработка комментария @Xufox по вопросу

Вы также можете использовать объект и получить доступ к своим массивам следующим образом:

var myArrays = {
    array1: [1,2],
    array2: [3,4]
}

var selector = 1;

console.log(myArrays['array'+selector]) //[1,2]
0

Вместо этого я рекомендую использовать объект. Вот так:

var selectors = {
sel1: [
  0,
  5
],
sel2: [
  5,
  6
]
};
var i = 1;
console.log(selectors["sel" + i]);
0
You can create nested arrays(array of arrays) in javascript like the way below if you want:

var arr=[];
for(var i=0;i<10;i++)
{
  arr[i]=new Array([i*2,i*3]);
}

// Then using the selector you can retrieve your desired value:


 var selector=1;

alert(arr[selector]);//2,3
alert (arr[3]); //6,9
alert(arr[2]); //4,6
alert(arr[2][0][0]); //4
alert(arr[2][0][1]); //6

Ещё вопросы

Сообщество Overcoder
Наверх
Меню