Обращение к массиву через переменную [дубликат]

234
19 октября 2017, 12:23

На данный вопрос уже ответили:

  • Как обратиться к переменной с id в имени? JS 1 ответ

Есть массив massiv_228, и к нему нужно обратиться через другую переменную massiv (я в нее передаю уникальный ID). Я понимаю, что делаю неправильно, но не пойму как исправить.

Вот пример кода:

// Массив
var massiv_228 = [
    '44',
    '45',
    '49',
    '50',
    '51',
];
var ID = '228';
var massiv = 'massiv_' + ID;
$(massiv).each(function() {
    // Элементы массива
});
Answer 1

Плохой способ, но кажется, что по-другому строку не превратить в имя локальной переменной:

~function () { 
  var massiv_228 = ['44', '45', '49', '50', '51']; 
 
  var ID = '228'; 
  var massiv = eval('massiv_' + ID); 
 
  console.log(massiv); 
}()

По-хорошему надо пересмотреть подход и скаладывать массивы внутрь:

~function () { 
  var data = { 228: ['44', '45', '49', '50', '51'] }; 
 
  var ID = '228'; 
  var arr = data[ID]; 
 
  console.log(arr); 
}()

Answer 2

Вы объявили массив глобально, так что можно получить его как свойство глобального объекта:

// Массив 
var massiv_228 = [ 
    '44', 
    '45', 
    '49', 
    '50', 
    '51', 
]; 
 
var ID = '228'; 
var massiv = 'massiv_' + ID; 
console.log(window[massiv]);

READ ALSO
Изменить размер ряда при экспорте Datatables?

Изменить размер ряда при экспорте Datatables?

Как при экспорте excel файла в DataTables можно изменить высоту всего ряда в файле?

257
Dropzonejs with Rails add files categories from the page

Dropzonejs with Rails add files categories from the page

Добрый деньПытаюсь реализовать drag and drop с помощью dropzonejs-rails + Paperclip

258
Как посчитать разницу во времени (JS)?

Как посчитать разницу во времени (JS)?

Добрый день, мне приходят данные в string формате: '11:43' и '13:14' Помогите правильно написать скрипт что-бы высчитывал разницу между этими двумя...

546