您好我正在使用排序对数组进行排序,并且不知道为什么/如何/ JavaScript执行代码的顺序。
下面的代码
arr = ["cc", "aa", "dd", "bb"];
console.log(arr);
fun = function() {
var re = arr;
console.log(re);
re = re.sort();
console.log(re);
};
fun();
我知道sort()方法改变了原始数组对象,但是为什么当我在sort方法之前的console.log时,我没有得到数组的原始顺序?
有人可以解释JavaScript的执行顺序吗?我认为它从上到下执行。
感谢。
更新:JSfiddle下面
答案 0 :(得分:2)
您的第一个console.log
打印出["cc", "aa", "dd", "bb"]
您的第二个console.log
打印出["cc", "aa", "dd", "bb"]
因为没有改变
您的第三个console.log
打印出[ 'aa', 'bb', 'cc', 'dd' ]
因为sort()
;将按字母顺序“排序”数组。
答案 1 :(得分:0)
如果要检查'Array.join'方法的中间执行步骤,可以传递比较器并检查它收到的值:
arr.sort(function(a, b) {
console.log([a, b], arr); // log both parameters and the array
return (a==b ? 0 : (a < b ? -1 : 1)); // return re comparison result
});