Math
Math.min()返回最小值 Math.max()返回最大值
var max=Math.max(1,5,7,8);
console.log(max); //8
var min=Math.min(1,5,7,8);
console.log(min); //1
也可以使用apply()方法,这个技巧的关键是把Math对象作为apply()的第一个参数,从而正确的设置this的值。然后可以将任何数组作为第二个参数。
var max=Math.max.apply(Math,[3,6,9,10]);
console.log(max); //10
Math.ceil()向上取整。
console.log(Math.ceil(2.1)); //3
console.log(Math.ceil(2.5)); //3
console.log(Math.ceil(2.8)); //3
Math.floor()向下取整。
console.log(Math.floor(2.1)); //2
console.log(Math.floor(2.5)); //2
console.log(Math.floor(2.8)); //2
Math.round()四舍五入。
console.log(Math.round(2.1)); //2
console.log(Math.round(2.5)); //3
console.log(Math.round(2.8)); //3
随机
random()方法。
console.log(Math.random()*1); //返回一个0~1的随机数
console.log(Math.round(Math.random()*1)); //因为random之后的数字都有很多小数所以应搭配取整方法
选择一个介于2到10的随机数。
因为从2~10一共有9个数 所以可能值得总数为9 而第一个可能的值为2
console.log(Math.round(Math.random()*9+2));
生成不重复的随机数:
①生成第i个[min,max]区间的随机数,并与之前i-1个数比较,如有重复,令i=i-1;重复生成第i个随机数。
function a(n, min, max) {
var arr = [];
for (i = 0; i < n; i++) {
arr[i] = parseInt(Math.random() * (max - min + 1) + min);
for (j = 0; j < i; j++) {
if (arr[i] == arr[j]) {
i = i - 1;
break;
}
}
}
return arr;
}
②先生成n个[min,max]区间随机数,比较是否重复,如重复则返回,再次执行。
function b(n, min, max) {
var arr = [];
for (i = 0; i < n; i++) {
arr[i] = parseInt(Math.random() * (max - min + 1) + min);
}
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
if (arr[i] == arr[j]) {
b(n, min, max);
return fault;
}
}
}
return arr;
}
③生成[min,max]区间的一个顺序数组,打乱数组,输出前n个值。
function c(n, min, max) {
var arr = [];
var arr2 = [];
for (i = 0; i < max - min + 1; i++) {
arr[i] = i + min;
}
for (var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);
for (i = 0; i < n; i++) {
arr2[i] = arr[i];
}
return arr2;
}
④生成[min,max]区间的一个顺序数组,从中随机选出一个值,然后在数组中删掉这个值,再选第二个随机值。
function d(n, min, max) {
var arr = [];
var arr2 = [];
for (i = 0; i < max - min + 1; i++) {
arr[i] = i + min;
}
for (i = 0; i < n; i++) {
var x = parseInt(Math.random() * arr.length);
arr2[i] = arr[x];
for (j = x; j < arr.length; j++) {
arr[j] = arr[j + 1];
}
arr.length = arr.length - 1;
}
return arr2;
}