javascript - 为什么使用 arguments 方法后的数组不能重新排序?
伊谢尔伦
伊谢尔伦 2017-04-11 12:36:07
[JavaScript讨论组]

代码如下:

function where(arr, num) {
    var arr1=Array.prototype.slice.call(arguments,0);
    arr1.sort(function(a,b){
    return b-a;
  });
  alert(arr1);
}

where([3, 10, 5], 3);

输出的结果是 3,10,5,3 ;怎么才能输出 3,3,5,10 ?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
阿神
function where(arr, num) {
    var arr1=Array.prototype.slice.call(arguments,0);
    var array = [];
    arr1.map(function(item){
        array = array.concat(item);
    });


    array.sort(function(a,b){
        return a-b;
    });
    alert(array);
}

where([3, 10, 5], 3);
怪我咯

先把数组展开吧,而且你用了 alert,自动调用了 toString 方法,不然也不是 3 10 5 3 。。

不知道你的数组嵌套层数,可以参考下 underscore 的 flatten 方法 https://github.com/hanzichi/u...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号