Próbuję dokonać prostej funkcji losowej, ale z jakiegoś powodu daje mi NAN. Skopiowałem tę funkcję z Mozilli Reference. Dzięki.

var size = {min:1, max: 1700}; 

function getRndInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}

function generate() {  
document.getElementById("Text1").innerHTML = getRndInt(size.min - size.max);
}
-1
vvAve 26 czerwiec 2017, 17:21

3 odpowiedzi

Najlepsza odpowiedź

Funkcja GetRndint, którą zdefiniowałeś, potrzebuje dwóch parametrów (min, max).

function getRndInt(min, max) 

Ale przechodzisz tylko jeden

getRndInt(size.min - size.max);
0
Raj 26 czerwiec 2017, 14:27

Masz wysłał dwa argumenty do swojej funkcji. Wysłałeś tylko jeden ..

var size = {min:1, max: 1700}; 

function getRndInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}

function generate() {  
document.getElementById("Text1").innerHTML = getRndInt(size.min,size.max);
}

generate();
<div id="Text1"></div>
1
Jamiec 26 czerwiec 2017, 14:25

Wydaje się, że jest to z powodu podpisu odejmowania {x0}}, parametr musi przecinać , oddzielone

var size = {
  min: 1,
  max: 1700
};

function getRndInt(min, max) {
  min = Math.ceil(min);
  max = Math.floor(max);
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

function generate() {
  console.log(getRndInt(size.min, size.max));
}
generate()
1
brk 26 czerwiec 2017, 14:24