var ind = 0
var arr = [0, 9, 5, 7, 20, 19, 12, 200, 5000, 1999, 50000, 999999, 25412, 2554]
for (var i = 0 i < arr.length i++) {
if (max < arr[i]) {
max = arr[i]
ind = i
}
}
console.info("最大值是" + max + "下标为" + ind)
var array = arr.splice(ind, 1)
console.log("数组为" + arr)
console.warn(array)
你看两个if里面有比较和赋值操作,我用大白话给你解释一下:第一个if:从数组的第一个值arr[0]取出来开始比较,如果arr[0]比maxd初始值0大,那么最大值现在就变成了这个值arr[0]第二次进行比较的时候就是拿着arr[1]去跟arr[0]比较,因为arr[1]比arr[0]小,所以maxd还是arr[0]........一直循环到arr[i]
第二个循环if:同样的逻辑,就不写了。
<!doctype html><html>
<head>
<meta charset="utf-8">
<title>this is number sort test</title>
<script type="text/javascript">
/**
* 自定义数组排序方案
* @param arr
* @param flag {String} desc||asc
*/
function sortNumber(arr, flag) {
if (Array.isArray(arr)) {
//自定义排序方式此处方法里面可以写你自己逻辑
return arr.sort(function (a, b) {
if (typeof a === 'number' && typeof b === 'number')
if (flag === 'asc')
return a - b
else
return b - a
else
alert('请传入数字数组!')
})
} else {
alert("请传入数组!")
}
}
var arr = [111, 23, 1113]
document.writeln('降序排序后:'+sortNumber(arr,'desc')+'</br>')
document.writeln('升序排序后:'+sortNumber(arr,'asc')+'</br>')
</script>
</head>
<body>
</body>
</html>