亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果數組是通過引用傳遞的,那么下面的方法將如何工作?

如果數組是通過引用傳遞的,那么下面的方法將如何工作?

森林海 2021-04-01 14:10:29
var myarray = []var array1 = [1,2,3]myarray.push(array1)array1 =[2,3,4]myarray.push(array1)console.log(myarray)我懂了[[1,2,3],[2,3,4]。不應該這樣嗎[[2,3,4],[2,3,4]如果我通過引用?謝謝編輯:我猜這是因為= [2,3,4]創建一個新對象并分配array1引用它而不是相反
查看完整描述

3 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

您沒有在修改變量(數組),而是在重新分配了新值。


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);


查看完整回答
反對 回復 2021-04-08
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

您需要更改的元素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)


查看完整回答
反對 回復 2021-04-08
?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

引用表示如果兩個變量引用相同的對象/數組,則修改其中的一個(更改屬性/刪除屬性)也會更改另一個變量。


let array1 = [1,2,3];

let array2 = array1;     //creating a reference

array1[0] = "something"; //modifying

console.log(array1)

console.log(array2)

引用并不意味著如果兩個變量都引用相同的對象/數組,則為其中的一個賦一個新值以更改另一個。


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)

如果要更改,請創建一個引用,然后更改的第一個元素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]


查看完整回答
反對 回復 2021-04-08
  • 3 回答
  • 0 關注
  • 238 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號