我试图在地图上设置一些随机坐标。我编写了console.log行以查看它是否成功选择了数字,但是它告诉我destinations
数组中的所有内容都是NaN。
看起来它将Math.random函数分配给变量而不是调用Math.random并给它返回的数字。任何人都知道了什么?
var nodeCount = 10
var mapSize = 100;
var destinations = new Array(nodeCount);
for (var i = 0; i < nodeCount; i++) {
destinations[i] = new Array(2);
}
var generateDestinations = function(nodeCount) {
for (var i=0; i<nodeCount; i++) {
destinations[i][0] = Math.floor(Math.random*mapSize); //sets x-coord
destinations[i][1] = Math.floor(Math.random*mapSize); //sets y-coord
console.log(destinations);
}
};
generateDestinations(nodeCount);
答案 0 :(得分:2)
Math.random()
是一个函数,因此需要使用call-operator调用:
Math.floor(Math.random() * mapSize);
// ^^
下面的一行也是如此。
此外,您可以使用数组文字语法而不是调用构造函数。它更清洁,更具表现力:
var destinations = [];
for (var i = 0; i < nodeCount; i++) {
destinations[i] = [];
}
答案 1 :(得分:0)
http://www.w3schools.com/jsref/jsref_random.asp
尝试这个,看起来像是你定义的最大值而不是min,(我假设你想要一个介于0和mapSize之间的数字)
// \/ max value
Math.floor((Math.random()*mapSize) + 0);
// /\ min value
Math.random也是一个函数,所以它的
Math.random()