例如,我开始于:

        var currentHistory = ['t1', 't2', 't3', 't4', 't5'];
        console.log(currentHistory);

然后,我交换一个元素并再次登录:
        var tmp = currentHistory[2];
        currentHistory[2] = currentHistory[0];
        currentHistory[0] = tmp;

        console.log(currentHistory);

只看到输出在每种情况下都是相同的。
        Array[5] 't3', 't2', 't1', 't4', 't5'

        Array[5] 't3', 't2', 't1', 't4', 't5'

时空的这种矛盾使我昨晚发疯了,我将给出一个答案。

最佳答案

好问题!试试这个:

console.log(currentHistory.slice(0));

请注意,现在摇摇晃晃,时间摇曳的东西已经分解成一条从A到B的简单直线了吗?

这实际上是控制台工作方式的问题。记录对象时,某些浏览器(尤其是Chrome)会记录对该对象的引用,以便您自由浏览。但是,如果对象发生更改,它将无法正常工作。

10-04 22:50