В вашем коде есть ряд проблем:
blockquote>
button.onclick = display(imgs)
button.onclick
следует установить для самой функции, а не для ее значения. об этом, когда он работает на заданном значении. Вместо этого вы можете использовать.bind
.blockquote>
for (let i = 0; i > arr.length; i++){
i
начинается с0
, что означает, что оно всегда будет нижеarr.length
, и поэтому этот цикл никогда не будет выполняться. [1127 ]blockquote>
i.src = ...
i
- это переменная, содержащая число, а не изображение с индексомi
. Вы, вероятно, хотите использовать здесьimgs[i]
, который ссылается на изображение №.i
.Это один из способов применения предложенных выше исправлений:
const dice1 = document.getElementById('dice1'); const dice2 = document.getElementById('dice2'); const dice3 = document.getElementById('dice3'); const dice4 = document.getElementById('dice4'); const dice5 = document.getElementById('dice5'); const dice6 = document.getElementById('dice6'); const button = document.getElementById('button'); const imgs = [dice1, dice2, dice3, dice4, dice5, dice6]; let pics = ['https://i.postimg.cc/MfVDpSmQ/Eagle.jpg', 'https://i.postimg.cc/QKGQPzZx/Man.jpg', 'https://i.postimg.cc/1g7MWMzf/Dog.jpg', 'https://i.postimg.cc/xc9HzM07/Telephone.jpg', 'https://i.postimg.cc/4mwcbyy3/Robot.jpg', 'https://i.postimg.cc/ctRRNcd7/Moon.jpg', 'https://i.postimg.cc/xJW5QCMQ/Dinosaur.jpg', 'https://i.postimg.cc/hhdMrLRt/Fish.jpg', 'https://i.postimg.cc/Ty1JWmcG/Flowers.jpg']; const display = () => { for (let i = 0; i < imgs.length; i++) { imgs[i].src = pics[Math.floor(Math.random() * pics.length)] } }; button.onclick = display;
Редактировать: чтобы избежать повторения одного и того же изображения, используйте
.splice
после вычисления случайного индекса изображения (как предложено @CertainPerformance):
[ 112]
Это будет зависеть, на которой версии.NET Вы используете и возможно какую версию Windows Вы используете..NET 3.5 имеет класс TimeZoneInfo, который включает исторические изменения и т.д. - к тому времени, поддержка была намного более неоднородной, к сожалению.
Я ожидал бы ToUniversalTime()
принимать это во внимание. Вы попробовали и проверили результат с датами до и после изменения DST?
Править
Если Вы знаете смещение часового пояса всех дат в Вашем DB, я окончательно рекомендую Вам преобразовать их в UTC на уровне таблицы. Вы избавляетесь от большого количества головных болей тот путь. Преобразование в местное время в целях дисплея легче.
Это зависит от того, как информация хранится в базе данных.
Хотелось бы надеяться, данные в дб содержат смещение UTC, и если так, любые изменения в правилах перехода на летнее время будут не важны.
Если смещение UTC не известно затем, фактически невозможно знать, как преобразовать его в UTC. Например, если бы время хранится как целое число без метаданных затем, система должна была бы знать, когда это было добавлено к дб, чтобы смочь выяснить соответствующую метку времени UTC.
я очень не хочу сказать это, но Вы завинчены. Стисните зубы и измените даты в базе данных к UTC, прежде чем проблема станет немного хуже. Ваш код станет кошмаром математики даты особого случая в два счета, если Вы продолжите пытаться сохранить местное время в базе данных.
компромисс: сохраните и местное время и время UTC в отдельных столбцах; по крайней мере затем у Вас будет ссылка
см. это сообщение по большему количеству причин никогда не сохранить времена дб в местное время
Посмотрим, поможет ли http://geekswithblogs.net/ewright/archive/2004/09/14/11180.aspx вам вообще.