求解if求最大值的原理是什么?最小值用if判断又怎么取?
var arr = [1,12,4,124.45,8,99998,456];
for(var i=0;i<arr.length;i++){
if(arr[0]<arr[i]){
arr[0]=arr[i];
}
}
求解if求最大值的原理是什么?最小值用if判断又怎么取?
var arr = [1,12,4,124.45,8,99998,456];
for(var i=0;i<arr.length;i++){
if(arr[0]<arr[i]){
arr[0]=arr[i];
}
}
Array.prototype.max = function() {
var max = null;
for (var i in this) {
var v = parseFloat(this[i]);
if (max == null) {
max = v;
} else {
max = v > max ? v : max;
}
}
return max;
}
test:
var a = [1, 3, 9, 5, 7];
a.max()
output: 9
用三元判断,代码可以精简一些解决,也比较好理解
var arr = [1,12,4,124.45,8,99998,456];
var min=arr[0], max=arr[0];
for(var i=1;i<arr.length;i++){
max = max > arr[i]?max:arr[i];
min = min < arr[i]?min:arr[i];
}
console.log("max is: "+max+"; min is: "+min);
还有一个更精简的写法
var max = [1,12,4,124.45,8,99998,456].sort(function(a,b){return b-a})[0];
var min = [1,12,4,124.45,8,99998,456].sort(function(a,b){return a-b})[0];
console.log(max,min);
var max; //用 max 记录当前找到的最大值
max = arr[0];
for(var i=0;i<arr.length;i++){ if(arr[i]>max) { max=arr[i]}}
// 目前max是前 i-1 个数的最大值,现在加入第i个数,
// 那么前 i 个数的最大值就是前 i-1 个数的最大值和第i个数中较大的那个
上面代码稍微一改就是你的代码(其实 i 可以从1开始循环)
有个比较好的方法,挑选出一个数组中最大/小值
var checkArr=[1,8,1,9,2];
//最大值
Math.max.apply(Math,checkArr);
//最小值
Math.min.apply(Math,checkArr);
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决