#javascript
#javascript
Вопрос:
У меня есть несколько массивов с динамическими именами (пронумерованными), и мне нужно получить первое значение из каждого из них.
Код выглядит следующим образом
var array1 = ["1","2","3"];
var array2 = ["1","2","3"];
var array3 = ["1","2","3"];
for (var cols=1; cols <=5; cols ) {
var imgs = array.cols[0];
}
Я получаю «(индекс): 131 Неперехваченная ошибка ссылки: массивы не определены» в консоли
Комментарии:
1. Поместите все ваши массивы в массив и выполните вложенный цикл
2. Какой ожидаемый результат?
3. Или поместите массивы в объект, причем имена будут ключевыми.
Ответ №1:
Я понял, что вы хотите получить "1","1","1"
первое значение каждого массива.
- Вы можете создать массив для хранения всех массивов array 3
- Использовать
map()
для массива arrrays - Внутри
map()
возвращает первый элемент массива.
var array1 = ["1","2","3"];
var array2 = ["1","2","3"];
var array3 = ["1","2","3"];
let arrays = [array1,array2,array3];
let res = arrays.map(([a]) => a);
console.log(res);
Комментарии:
1. Однако в том же цикле я повторю еще несколько действий. Виноват. Следовало бы упомянуть.
Ответ №2:
Если ваши массивы находятся в глобальной области видимости, возможно, вы сможете получить к ним доступ с помощью window
object:
var array1 = ["1","2","3"];
var array2 = ["1","2","3"];
var array3 = ["1","2","3"];
for (let i = 1; i <= 3; i )
{
console.log(window["array" i][0]);
}
Другой, более общей альтернативой является сохранение ваших массивов внутри другой структуры, такой как Map
или an Array
. Я покажу, как вы можете сделать это с помощью карты:
let array1 = ["1","2","3"];
let array2 = ["1","2","3"];
let array3 = ["1","2","3"];
let myMap = new Map([["1", array1], ["2", array2], ["3", array3]]);
myMap.forEach(([first, ...rest]) => console.log(first));
Комментарии:
1. Это приведет к тому, что OP будет иметь имена массивов в последовательности и всегда иметь номер в их конце
2. @Taplar Я добавил другую альтернативу вместо удаления ответа, возможно, первая тоже будет полезна в некоторых конкретных случаях.