js中判断一些数字大小

JavaScript013

js中判断一些数字大小,第1张

var max = 0

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>