JokerSoulClub 2017-10-13 08:49 采纳率: 0%
浏览 2280
已采纳

js sort(function(a,b){})排序回调函数里如何复制传入的数组里的参数a,b

这里的sort(function(a,b){})a,b都是数组里的引用的方式,无法复制给其他变量后进行replace操作

下面就是样例,希望依据去空格后的字符数量排序,结果sort里传入的值无法完成replace操作,最后结果是包含空格后的字符数量排序。

  <html>
 <head>
 <script>

    var arr = ['c     c','d ddd','eee'];
    arr.sort(function(a,b){
        return pare(a)>pare(b)?1:-1;
    });
    function pare(value){
        value=value.replace(' ','');
        value=value.replace(' ',''); //去除全角空格
        return value.length;
    }
    alert(arr);
 </script>
 </head>
 <body>
 </body>
 </html>
  • 写回答

2条回答 默认 最新

  • 普通网友 2017-10-14 08:18
    关注

    你用value=value.replace(' ','');只能去掉一个空格,去掉所有空格要用正则。
    还有就是arr.sort这个函数不会改变arr,排序结果要单独存一下。

     var arr = ['c     c', 'd ddd', 'eee'];
            var result = arr.sort(function (a, b) {
                return pare(a) > pare(b) ? 1 : -1;
            });
            function pare(value) {
                value = value.replace(/\s/g, "");
                // value = value.replace(' ', ''); //去除全角空格
                return value.length;
            }
            alert(result);
    

    这样就可以了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型