这是我的训练:



    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.getElementById("demo").innerHTML = fruits;

    function myFunction() {
        var fruits2 = fruits;
        fruits2.reverse();
        document.getElementById("demo").innerHTML = fruits+'<br>'+fruits2;
    }

<p>Click the button to reverse only last array (fruits2).</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>





当我反转fruits2时,我的第一个变量(水果)也会改变,

我只是不想这样!
我认为一定很容易

最佳答案

fruits2 = fruits表示fruits2现在是同一对象-不是fruits的副本,而是与fruits相同的对象。

Maddog说,这就像给您的朋友Harry取个昵称。当您拳打疯狗时,哈利也会生气。他们不是两个独立的人,而是一个用两种方式称呼他的人。

如果要将它们分开,则需要克隆阵列。使用slice最容易复制数组的副本:

 var fruits2 = fruits.slice()

10-08 15:18