js排序方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数组操作</title>
</head>
<body>
    <script type="text/javascript">
    /*var _arr = [1,2,3,4,5,6,7,8,9];
    var _arr1 = [1,2,3];
    _arr.forEach(function(item,index,_arr){
        document.write(item+"---" +index+ "----" +_arr );
        document.write("<br/>");
    });
    _arr.filter(function(item,index,_arr){
        document.write(item+"----"+index+"----"+_arr+"----"+ this.length);
        document.write("<br/>");
    },_arr1);*/
    //根据数组的和排序
/*    var _arr3 = [[2,5,66,2],[2,7,11,9],[9,22,3]];
    _arr3.sort(function(a,b){        
        var num1=0;
        var num2=0;
        var i=0;
        for(i=0; i<a.length;i++){
            num1+=a[i];
        }
        var j=0
        for(j=0; j<b.length; j++){
            num2+=b[j];
        }
        return num2-num1;
    });
    document.write(_arr3 + "<br/>");*/
    //根据数组中的最大值排序
    /*var _arr3 = [[2,5,66,2],[2,7,11,9],[9,22,3],[9,101,3]];
    _arr3.sort(function(a,b){
        var num1=0;
        var num2=0;
        a.forEach(function(item){
            if(item>num1){
                num1=item;
            }
        });
        b.forEach(function(item){
            if(item>num2){
                num2=item;
            }
        });
        return num2 - num1;
    });
    document.write(_arr3 + "<br/>");*/

    //根据正负从大到小或者从小到大排序
    /*var _arr = [3,2,4,6,1,9,5];
    function sorts(symbol,arr){
        if(symbol == "positive"){
            arr.sort(function(a,b){
                return a-b;
            });
        }else if(symbol == "minus"){
            arr.sort(function(a,b){
                return b-a;
            });
        }
        
    }
    sorts("minus",_arr);
    document.write(_arr);*/

/*    Array.prototype.sHift=function(){
        var _this = this;
        var num = _this[0];
        var i=0;
        for(i=0; i<_this.length; i++){
            _this[i]=_this[i+1];
        }
        return num;
    }
    var _arr = [3,2,4,6,1,9,5];
    _arr.sHift();
    document.write(_arr);*/

    //伪装一个splice函数
    var _arr2 = [3,2,4,6,1,9,5];
    Array.prototype.mySplice=function(){
        var _this = this;
        if(arguments.length==2){
            if(arguments[1] == 0){
                return _this;
            }else{
                var i=0;
                for(i=arguments[0]+arguments[1]; i>arguments[0]; i--){
                    var j=0;
                    for(j=i; j<_this.length; j++){
                        _this[j-1]=_this[j];
                    }                
                }
                _this.length = _this.length - arguments[1];
                return _this;
            }            
        }
        if(arguments.length>2){
            var i=0;
            for(i=arguments[0]+arguments[1]; i>arguments[0]; i--){
                var j=0;
                for(j=i; j<_this.length; j++){
                    _this[j-1]=_this[j];
                }                
            }
            _this.length = _this.length - arguments[1];

            var n=0;
            for(n=2;n<arguments.length;n++){
                var m=0;
                for(m=_this.length;m>arguments[1]-1;m--){
                    _this[m] = _this[m-1];
                }
                _this[m] = arguments[n];
            }
            return _this;
        }
    }
    //var a = _arr2.mySplice(1,2,"wo");
    </script>
</body>
</html>

转载于:https://www.cnblogs.com/qibingshen/p/5734715.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,sort()是用于对数组进行排序方法。sort()可以按照默认的字符顺序对数组中的元素进行排序,也可以使用自定义的排序函数来指定排序规则。 默认情况下,sort()方法将数组元素转换为字符串,并按照Unicode码点进行排序。这意味着它在对数字进行排序时可能不会按照我们预期的顺序进行。 如果我们想要指定自定义的排序规则,我们可以通过传递一个比较函数作为参数来实现。比较函数接受两个参数,并根据这两个参数的关系返回一个负数、零或正数,来决定它们在排序结果中的顺序。如果第一个参数应该排在第二个参数之前,则返回一个负数,如果它们的顺序应该保持不变,则返回零,如果第一个参数应该排在第二个参数之后,则返回一个正数。 下面是一个示例:假设我们有一个对象数组,每个对象具有name和age属性。我们可以使用sort()方法按照name属性的字母顺序对数组进行排序,可以使用如下的比较函数: ``` function compare(a, b) { if (a.name < b.name) { return -1; } if (a.name > b.name) { return 1; } return 0; } array.sort(compare); ``` 这样,数组将按照name属性的字母顺序进行排序。如果要按照age属性进行排序,只需相应地修改比较函数即可。 需要注意的是,sort()方法会修改原始数组,而不是返回一个新的排序后的数组。因此,在使用sort()方法之前,最好先创建原始数组的副本,以防止不需要的副作用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [jssort:JavaScript排序方法,将按给定数组中对象的多个字段进行排序](https://download.csdn.net/download/weixin_42112894/18494492)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [js中数组排序sort方法的原理分析](https://download.csdn.net/download/weixin_38535808/13209337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Js sort排序使用方法](https://download.csdn.net/download/weixin_38615591/13064684)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值