编辑:如果您阅读 Matt Bryant 的回答,您会发现它应该可以工作,但他使用 indexOf() 方法,并且该方法不适用于 IE 8 或更高版本,我需要它在 IE 8 上工作。我试过这样做作为 indexOf() 方法的解决方法,但它不起作用。
var tester = -1;
for (var test=0; test<xposition.length; test++) {
if (x == xposition[0]) {
tseter = x;
}
}
知道为什么它不起作用吗?
原始问题:所以我想生成随机数字对,但前提是尚未生成数字对。这是我尝试过的,希望如果您阅读了我尝试过的内容,您会明白我所需要的正是它。
function randomPairs() {
var xposition = []; //array which holds all x coordinates
var yposition = []; //array which holds all y coordinates
for (var i=0; i<5; i++) { //do everything below 5 times (generate 5 pairs)
var x = getRandom(1,7); //generate new x point
var y = getRandom(2,7); //generate new y point
if ( jQuery.inArray(x, xposition) ) { //if newly generated x point is already in the xposition array (if it was already previously generated
var location = xposition.indexOf(x) //find the index of the existing x
if (y == yposition[location]) { //if the newly generated y points equals the same y point in the same location as x, except in the yposition array
while ( y == yposition[location]) {
y = getRandom(2, 7); //change y
}
}
}
}
xposition.push(x); //put x into the array
yposition.push(y); //put y into the array
}
那么,知道为什么它不起作用吗?我是否正确使用了 jQuery.inArray() 和 .indexOf() 方法?
哦,getRandom 是
function getRandom(min, max) {
return min + Math.floor(Math.random() * (max - min + 1));
}
基本上,它会生成一个介于最小值和最大值之间的数字。
另外,当我尝试做
alert(xposition);
alert(yposition);
它是空白的。