1

これは私のトレーニングです:

    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最初の変数 (果物) を逆にすると、変更も行われます。

私はそれが欲しくないだけです!簡単に違いないと思います

4

2 に答える 2

4

fruits2 = fruitsは同じオブジェクトになりました。fruits2のコピーでfruitsはなく、 と同じオブジェクトfruitsです。

友達のハリーにニックネームを付けるようなものです、マッドドッグと言います. マッドドッグを殴るとハリーも怒る。彼らは 2 人の別々の人物ではなく、2 つの方法で彼を指す 1 人の人物です。

それらを別々に保持したい場合は、アレイを複製する必要があります。配列のコピーを作成する最も簡単な方法は、次を使用することsliceです。

 var fruits2 = fruits.slice()
于 2016-11-07T02:27:35.407 に答える
0

これは、fruitsfruits2が同じ配列であるためです。1 つを逆にすると、2 つ目も逆になります。

配列の別のコピーを作成する必要があります。1つの簡単な方法は

var fruits2 = JSON.parse(JSON.stringify(fruits));

または

var fruits2 = fruits.slice()

    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    document.getElementById("demo").innerHTML = fruits;
    
    function myFunction() {
        var fruits2 = fruits.slice()
        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>

于 2016-11-07T02:28:29.377 に答える