У меня есть значения массива od, и я хочу извлечь из него случайные данные. Это мой код:
var bonus1='Opony zimowe';
var bonus2='Alarm';
var bonus3 = 'Bagażnik';
var bonus4 = 'Relingi';
var bonus5 = 'Box na narty';
var bonusy = [bonus1, bonus2, bonus3, bonus4, bonus5];
var pickBonus= bonusy[Math.floor(Math.random() * bonusy.length)];
Но он не показывает случайное значение (всегда он console.log - "Тревога"):
Что случилось?
На скриншоте видно, что вы в основном пытаетесь напечатать одно и то же значение несколько раз, ожидая другого значения.
Это не сработает, вам нужно получить случайное значение снова из массива каждый раз. Сделайте его функцией
var pickBonus= () => bonusy[Math.floor(Math.random() * bonusy.length)];
А теперь вызовите его как
console.log( pickBonus() );
console.log( pickBonus() );
console.log( pickBonus() );
console.log( pickBonus() );
демонстрация
var bonus1='Opony zimowe';
var bonus2='Alarm';
var bonus3 = 'Bagażnik';
var bonus4 = 'Relingi';
var bonus5 = 'Box na narty';
var bonusy = [bonus1, bonus2, bonus3, bonus4, bonus5];
var pickBonus= () => bonusy[Math.floor(Math.random() * bonusy.length)];
console.log( pickBonus() );
console.log( pickBonus() );
console.log( pickBonus() );
console.log( pickBonus() );
pickBonus
должен быть функцией, а не переменной в вашем случае.
Затем вы можете запускать этот тип кода и всегда получать случайные значения:
var bonus1 = 'Opony zimowe';
var bonus2 = 'Alarm';
var bonus3 = 'Bagażnik';
var bonus4 = 'Relingi';
var bonus5 = 'Box na narty';
var bonusy = [bonus1, bonus2, bonus3, bonus4, bonus5];
function pickBonus() {
return bonusy[Math.floor(Math.random() * bonusy.length)];
}
console.log(pickBonus());
console.log(pickBonus());
console.log(pickBonus());
console.log(pickBonus());
заменить последнюю строку
var pickBonus= bonusy[Math.floor(Math.random() * (bonusy.length-1)) + 1]
и оберните весь код в функцию, чтобы заполнить новое значение pickBonus
в каждом вызове функции
pickBonus
снова и снова ... вам нужно запустить частьMath.random()
, чтобы получить новое значение.