假设我想要一个返回输入数组的排序副本的sort函数.我天真地试过这个
function sort(arr) {
return arr.sort();
}
Run Code Online (Sandbox Code Playgroud)
我用它测试了它,这表明我的sort方法正在改变数组.
var a = [2,3,7,5,3,7,1,3,4];
sort(a);
alert(a); //alerts "1,2,3,3,3,4,5,7,7"
Run Code Online (Sandbox Code Playgroud)
我也试过这种方法
function sort(arr) {
return Array.prototype.sort(arr);
}
Run Code Online (Sandbox Code Playgroud)
但它根本不起作用.
有没有一种简单的方法,优选的方式是不需要手动滚动我自己的排序算法或将数组的每个元素复制到一个新的元素?
我需要得到随机数,但它不应该等于之前的数字.这是我的代码片段.但它不起作用.
function getNumber(){
var min = 0;
var max = 4;
var i;
i = Math.floor(Math.random() * (max - min)) + min;
if (i=== i) {
i = Math.floor(Math.random() * (max - min)) + min;
}
return i;
};
console.log(getNumber());
Run Code Online (Sandbox Code Playgroud) 基本上我选择0-24之间的随机数:
Math.floor(Math.random() * myArray.length); // myArray contains 25 items
Run Code Online (Sandbox Code Playgroud)
让我们说它出现了8.现在我想得到0-24相同范围内的另一个数字,但这一次,我不想要一个8.下一次,我可能会滚动一个15.现在我想再次滚动但是我不想要8或15.我现在处理这个问题的方法是使用do while循环,如果数字相同,我只是重新滚动.
这是我家庭作业的一小部分,事实上,我已经努力满足所有要求,所以我想你可以说这是为了我个人的利益,所以我可以写得恰到好处,而不是最终的"每日wtf" ".
有没有比以下更好的方式:
#define BOUND 7
int r;
int e = 1;
r = rand() % BOUND;
while (r == e){
r = rand() % BOUND;
}
Run Code Online (Sandbox Code Playgroud)
用于生成除值之外的范围内的数字e?