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

درود

 

من سعی دارم به تعدادی که یوزر میخواد عدد رندوم بسازم (تابع 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);

 

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