3 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
您沒有在修改變量(數(shù)組),而是在重新分配了新值。
var myarray = [];
var array1 = [1, 2, 3];
myarray.push(array1);
array1.push(2, 3, 4); // Modifying the array in memory.
//myarray.push(array1);
console.log(myarray);

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
您需要更改的元素array1以保留引用。不重新分配它。
var myArray = []
var array1 = [1,2,3]
myArray.push(array1)
array1.forEach((e, i) => array1[i] = array1[i] + 1)
myArray.push(array1)
console.log(myArray)

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
引用表示如果兩個(gè)變量引用相同的對(duì)象/數(shù)組,則修改其中的一個(gè)(更改屬性/刪除屬性)也會(huì)更改另一個(gè)變量。
let array1 = [1,2,3];
let array2 = array1; //creating a reference
array1[0] = "something"; //modifying
console.log(array1)
console.log(array2)
引用并不意味著如果兩個(gè)變量都引用相同的對(duì)象/數(shù)組,則為其中的一個(gè)賦一個(gè)新值以更改另一個(gè)。
let array1 = [1,2,3];
let array2 = array1; //creating a reference
array1 = ["something",2,3]; //Assigning a new value
console.log(array1)
console.log(array2)
如果要更改,請(qǐng)創(chuàng)建一個(gè)引用,然后更改的第一個(gè)元素myarray并將其推入myarray
var myarray = []
var array1 = [1,2,3]
myarray.push(array1)
myarray[0] =[2,3,4]
myarray.push(myarray[0])
console.log(myarray[0]) //[2,3,4]
console.log(myarray[1]) //[2,3,4]
myarray[0][1] = "something else" //change both elements
console.log(myarray[0]) //[2,"something else",4]
console.log(myarray[1]) //[2,"something else",4]
添加回答
舉報(bào)