为了账号安全,请及时绑定邮箱和手机立即绑定

js排序,在执行之前打印出的结果是执行后的结果

js排序,在执行之前打印出的结果是执行后的结果

富国沪深 2019-03-14 13:13:24
function compare(property){    return function(a,b){        var value1 = a[property];        var value2 = b[property];        return value1 - value2;    }}let obj1=[{num:3},{num:2},{num:5}];console.log(obj1);let obj2=obj1.sort(compare("num"));console.log(obj1)我觉得第一次打印结果应该是3 2 5,执行排序之后 ,第二次打印 应该是2 3 5  。但是结果如下:一脸懵逼0.0 有没有大神可以指点一下?
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

控制台打印的是动态的,你打的是引用类型,你看的时候已经排序完了,当然是排序后的结果,你排序前debugger一下或者JSON.parse(JSON.stringify(data))输出你排序前的结果就对了


查看完整回答
反对 回复 2019-03-21
?
三国纷争

TA贡献1804条经验 获得超7个赞

你的obj1是引用类型的,去看看值类型和引用类型的区别吧


查看完整回答
反对 回复 2019-03-21
  • 3 回答
  • 0 关注
  • 547 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信