数组的排序,去重复

数组的排序:

  一 . 原理版:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        var arr = [10, 1, 500, 0, 3000];
        var temp = null;
        for (var i = 0; i < arr.length; i++) {
            for (var j = i + 1; j < arr.length; j++) {
                if (arr[i] > arr[j]) {
                    temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        document.write(arr);
    </script>
</head>
<body>

</body>
</html>

  二 . 升级版:

      用sort()方法:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数组排序</title>
    <script>
        var arr = [ 'd', 'e', 'g', 'c' ];
//        sort();
//        默认按照字母的ascii码从小到大排序
//        ASCII码 8位二进制的编码
//        00000001
        arr.sort();
        document.write( arr );
var arr = [ 1, 20, 3, 50, 100 ]; arr.sort( function( i, j ){ // 升序: // return i - j; // 降序: return j - i; } ); document.write( arr ); </script> </head> <body> </body> </html>

 数组去重复:

  一 . 原理版:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //对数组去重复
        var arr = [50, 10, 20, 10, 10, 30, 30, 50, 100, 200, 10, 10];
        document.write(arr + "<br/>");
        var arr2 = [];
        var count = 0;
        while (1) {
            if (count == arr.length) {
                break;
            } else {
                if (!isExist(arr2, arr[count])) {
                    arr2.push(arr[count]);
                }
            }
            count++;
        }
        document.write(arr2);
        // 判断一个值在不在数组之中
        function isExist(arr, value) {
            for (var i = 0; i < arr.length; i++) {
                if (value == arr[i]) {
                    //存在
                    return true;
                }
            }
            //不存在
            return false;
        }
    </script>
</head>
<body>

</body>
</html>

  二 . 升级版:

    用indexOf()方法:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //对数组去重复
        var arr = [50, 10, 20, 10, 10, 30, 30, 50, 100, 200, 10, 10];var arr2 = [];
        for ( var i = 0; i < arr.length; i++ ) {
        //在哪里找.indexOf( 找什么值 ), 如果返回值为-1 说明不存在,否则就是存在
        if ( arr2.indexOf(arr[i]) == -1 ) {
              arr2.push( arr[i] );
           }
        }
        document.write( arr2 );
    </script>
</head>
<body>

</body>
</html>

 

posted on 2017-02-25 14:52  梦幻飞雪  阅读(468)  评论(0编辑  收藏  举报