猿问

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

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 有没有大神可以指点一下?


富国沪深
浏览 549回答 3
3回答

潇潇雨雨

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

三国纷争

你的obj1是引用类型的,去看看值类型和引用类型的区别吧
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答