在将阵列改组之前将阵列记录到控制台...似乎被改组了吗?

时间:2019-06-14 16:14:52

标签: javascript arrays

这是我正在处理的一些React代码的简化版本,但显示出相同的行为。这是我的代码:

const arr = ['a', 'b', 'c', 'd'];
console.log(arr);

shuffle(arr);
console.log(arr);

function shuffle(array) {
    console.log('shufflin');
    let m = array.length, t, i;
    while (m) {
        i = Math.floor(Math.random() * m--);
        t = array[m];
        array[m] = array[i];
        array[i] = t;
    }
}

我希望第一个日志的输出是原始数组,但是展开它已经显示了改组版本。这怎么可能?

输出:

(4) ["a", "b", "c", "d"]
0: "a"
1: "c"
2: "b"
3: "d"
length: 4
__proto__: Array(0)

shufflin

(4) ["a", "c", "b", "d"]
0: "a"
1: "c"
2: "b"
3: "d"
length: 4
__proto__: Array(0)

Bergi提供了答案:在控制台中扩展对象(或数组)总是显示当前状态。

0 个答案:

没有答案