Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Выбрать массив из нескольких, по имени, содержащемуся в другой переменной (https://javascript.ru/forum/misc/75643-vybrat-massiv-iz-neskolkikh-po-imeni-soderzhashhemusya-v-drugojj-peremennojj.html)

lsdfreak 26.10.2018 13:14

Выбрать массив из нескольких, по имени, содержащемуся в другой переменной
 
Добрый день!

Есть несколько массивов:
A78010 = [1,2,3]
A71202 = [2,3,4]
A68010 = [3,4,5]
A61202 = [4,5,6]

И есть переменная arrayName, в которую приходит имя нужного массива. Например "A71202".
Как выбрать\найти именно этот массив среди остальных и присвоить его значения переменной price.

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

На данный момент есть страница, где всего 5 массивов, и там все сделано через case. Но теперь нужна страница, где этих массивов около 30, и не хотелось бы делать это кейсом.

Спасибо!

SuperZen 26.10.2018 13:38

var size = "a7" // toUpperCase
  var density = "120"
  var type = "2"; // значит нужен массив a71202.

  const base = {
    A78010: [1, 2, 3],
    A71202: [2, 3, 4],
    A68010: [3, 4, 5],
    A61202: [4, 5, 6],
  }
  console.log(base[`${size.toUpperCase()}${density}${type}`]) // [2, 3, 4]

lsdfreak 26.10.2018 14:21

Буду пробовать. Но, если я правильно понял — именно то, что нужно.
Огромное спасибо!

Artur_Hopf 26.10.2018 15:41

var arrayName = ['A71202'];// что придет

var A78010 = [1,2,3];
var A71202 = [2,3,4];
var A68010 = [3,4,5];
var A61202 = [4,5,6];

const object = {A78010:A78010, A71202:A71202, A68010:A68010, A61202:A61202}; //надо чтоб все переменные были в объекте

console.log(object[arrayName[0]]); //находим в объекте нужный массив

рони 26.10.2018 16:29

Artur_Hopf,
:-? чем ваш пример отличается от примера SuperZen, пост №2 ?

j0hnik 26.10.2018 19:05

A78010 = [1,2,3],
A71202 = [2,3,4],
A68010 = [3,4,5],
A61202 = [4,5,6];

arrayName = 'A61202';
alert(window[arrayName]);


Часовой пояс GMT +3, время: 13:50.