第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

存儲數組問題?

存儲數組問題?

青春有我 2018-10-19 14:15:36
為什么我保存的數據都會變成最后一個數據內容??為什么我點擊輸出內容比如第一條的["小紅", "90", "50", "80", "220"]里面的內容會是小豬,70,70,20,160????真的想不明白哪錯了?
查看完整描述

1 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

關鍵就是temp這個變量,你沒有重置。
首先你的temp是一個數組,當內嵌的for循環(huán)完,temp基本是存著一組數據了。然后你就把它push到this.data去了。
可是第二波循環(huán)的時候,這時你的temp保留著第一組數據,這個時候其實應該給temp一個清空temp=[];,但是你沒有。這就意味著,你這時候只是對著原來那組數據做覆蓋操作,而push到data里的是數組,也就是對象,其實際data的元素存儲的是temp原來那個對象的地址(也就是data數組里的元素跟temp變量指向同一份數據),這個時候你覆蓋temp數組里的元素,那么相當于data里的對應的也被修改到了,所以最終你會發(fā)現(xiàn)怎么幾組數據都變成了同一組。

你可以做一個簡單的代碼校驗一番

var t = [];

t[0]=1;

t[1]=2;

var b = [];

b.push(t);// [Array(1,2)]

t[0]=3;

b.push(t);// [Array(3,2),Array(3,2)]

所以在嵌套循環(huán)中,有些變量,比如這里的temp,每一波循環(huán),記得重置一下。當你重置temp的時候,實際就是temp指向了新的一個空間,這樣就跟data存的之前那個temp分離開來,就不會有你遇到這種問題。這其中的概念,個人相對不是很精確,有什么不對的,麻煩指出~

查看完整回答
反對 回復 2018-11-24
  • 1 回答
  • 0 關注
  • 468 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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