تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علی
ساخت و نمایش عدد رندوم
محسن موحد حل شده توسط محسن موحد

درود

 

من سعی دارم به تعدادی که یوزر میخواد عدد رندوم بسازم (تابع getNumber با کلیک کاربر فراخوانی میشه) و داخل یک div با آیدی showNumbers اونها رو نشون بدم اما این کد کار نمی‌کنه و نمیتونم بفهمم علت چیه.

 

"use strict";
let numberList = [];
let textPlace = document.getElementById("showNumbers");
let madeNumbers = 0;
function getNumber() {
let totalNumbers = prompt(
"Enter the amount of numbers you want to be generated:"
);
totalNumbers = Number(totalNumbers);
getRandomNumber(totalNumbers);
}
function getRandomNumber(amount) {
if (numberList.length >= amount) {
textPlace.innerHTML = numberList.toString();
let error = new Error(
"We have generated max amount of numbers which is" + amount
);
throw error;
}
while (madeNumbers < amount) {
let generatedNumber = parseInt(Math.random() * amount);
if (numberList.includes(generatedNumber)) {
return getRandomNumber();
}
numberList.push(generatedNumber);
madeNumbers++;
}
}

سلام،

مشکلی که در کد شما وجود داره به دو علت اصلی برمیگرده، یکی اینکه تابع getRandomNumber به درستی فراخوانی نمیشه و دیگری اینکه نمایش اعداد رندوم در div با آیدی showNumbers انجام نمیشه. همچنین کد نیاز به بهبودهایی داره تا درست کار کنه:

"use strict";
let numberList = [];
let textPlace = document.getElementById("showNumbers");
function getNumber() {
  let totalNumbers = prompt("Enter the amount of numbers you want to be generated:");
  totalNumbers = Number(totalNumbers);
  if (isNaN(totalNumbers) || totalNumbers <= 0) {
    alert("Please enter a valid number greater than zero.");
    return;
  }
  getRandomNumber(totalNumbers);
  displayNumbers();
}
function getRandomNumber(amount) {
  numberList = []; // Reset the list for new generation
  while (numberList.length < amount) {
    let generatedNumber = Math.floor(Math.random() * amount);
    if (!numberList.includes(generatedNumber)) {
      numberList.push(generatedNumber);
    }
  }
}
function displayNumbers() {
  textPlace.innerHTML = numberList.join(", ");
}
// Assuming you have a button to call getNumber function
document.getElementById("generateButton").addEventListener("click", getNumber);

 

بهترین پاسخ
محسن موحد ۲۷ خرداد ۱۴۰۳، ۲۱:۴۷