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

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

一個關于數組的問題

一個關于數組的問題

冉冉說 2019-03-20 17:15:29
 function makeRow(v=0){            const array = new Array(3);            array.fill(v);            return array;        }        function makeMatrix(v = 0){            const array = new Array(3)            array.fill(makeRow(v))            return array;        }        const a = makeMatrix()        a[0][1]=2        console.log(a)        /*        [          [0,2,0],          [0,2,0],          [0,2,0]        ]        */        如上代碼,為什么我只操作了 a的第0項,但結果是每項都被改變了求大神解答
查看完整描述

2 回答

?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

數組是引用類型。makeRow(v)返回的實際上是const array = new Array(3);這個array在內存中的地址,fill方法將這個地址取了三遍,所以無論改哪個,3個都會改變。


查看完整回答
反對 回復 2019-04-02
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

因為你只makeRow了一次,矩陣中的每一“行” 都引用了同一個數組,你改矩陣中的值就相當于改 “行” 中的一個


查看完整回答
反對 回復 2019-04-02
  • 2 回答
  • 0 關注
  • 405 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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