Алексей Уколов, ок, попробую описать. Вот сайт: сайт.
Там две страницы: index.html и gallery.html.
На главной показывается рандомная картинка из массива картинок, где номер картинки это её номер в массиве.
function randomNumber(arr) {
var rand = Math.floor(Math.random() * arr.length);
return rand;
}
let titleImage = $(".title__img");
function randomImage() {
titleImage.html(
'<img src="assets/img/gallery/' +
randomNumber(img_array) +
'.jpg" alt="image">'
);
}
Массив время от времени увеличивается, и я решил динамически получать длину массива на главной. Все картинки массива выводятся в gallery.html, там получаю длину массива, и загоняю в index.html.
let arrLength = localStorage.getItem("arr");
let img_array = [];
img_array.length = arrLength;
Поскольку в бэк я не умею, то решил попробовать обойтись средствами браузера.
Думал что import/export мне помогут, но нет.
А вот теперь в силу вступает область видимости.
Вы привели пример где взяли массив из index.html, и в него же вернули из переменной длину массива. То есть ваша область видимости - index.html.
У меня же html-файлов два, и у каждого своя область видимости.
Так вот. Достать внутри одного файла длину массива можно, а передать её в js-файл другой страницы не получается, вернее получается передать только переменную, но не значение, потому что из другого html-файла область видимости index.html недоступна.
Я подкрутил ваш планкер до более точных исходных данных: https://plnkr.co/edit/wLZrpqDe7oUBm6Mg
Алексей Уколов, нет. Массив есть. И длина его есть. Если вы внимательно посмотрите на код в заголовке, то увидите, что в gallery.js длинна массива - 32.
Передать длину массива наружу через экспорт не получится. Попробуйте сами свой код. Переменную вы увидите, а вместо 32 будет 0. Потому что в области видимости index.js исходного массива нет. Будь в arrLength функция - она бы передалась. А примитив - нет.
Алексей Уколов, да, именно это я и имею в виду. Это означает что значение переменной видно только внутри gallery.js. А в другой файл его, значение, передать нельзя. Но можно записать в localStorage, и забрать оттуда.
Там две страницы: index.html и gallery.html.
На главной показывается рандомная картинка из массива картинок, где номер картинки это её номер в массиве.
Массив время от времени увеличивается, и я решил динамически получать длину массива на главной. Все картинки массива выводятся в gallery.html, там получаю длину массива, и загоняю в index.html.
Поскольку в бэк я не умею, то решил попробовать обойтись средствами браузера.
Думал что import/export мне помогут, но нет.
Вот такая ситуация.