作者Bruce003 (Bruce Chen)
看板Web_Design
標題[問題] 陣列元素閃線
時間Tue Apr 30 01:38:32 2019
(Javascript 問題)
https://github.com/BruceChen034020/20190430BugDemo
Card是一個類別,裡面有一個函數叫copy。
Card.copy可以把Card物件的所有屬性複製,產生新物件。
CardList_init函數裡面有一個c陣列,是Card的陣列。
我把c的一些元素加到c的最後面去,但是加到一半c[6]就不見了。
我只是c.push而已,應該不會動到c[6]吧!!!?????
我debug了好久,都不知道為什麼會這樣
求解,謝謝!!! 萬分感激!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.155.245
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Web_Design/M.1556559515.A.093.html
1F:→ konkonchou: 若只是單純push 04/30 02:07
2F:→ konkonchou: c.push(c[i].copy(c.length+1)) 改 c.push(c[i]) 04/30 02:08
3F:→ konkonchou: 跑完長度變 253 看是不是你要的 04/30 02:08
4F:推 art1: 你的 c 變數宣告連 var 都沒加 04/30 02:46
5F:→ konkonchou: c.push(c[i]); c[c.length-1].id=c.length; 04/30 03:00
6F:→ konkonchou: 或樓上說的加上 var 避免以為 local 結果改到 global 04/30 03:01
7F:推 pkro12345: 你沒宣告變數又把複製和初始陣列都直接叫c就污染了 04/30 03:22
8F:→ pkro12345: 你把card.js裡的c變數換成其他名字就好 不過治標不治本 04/30 03:23
9F:→ kattte: 陣列元素閃線是甚麼意思? 我只看到你在第五次的時候把c 04/30 23:38
10F:→ kattte: 給清空了 04/30 23:38
11F:→ Bruce003: 我把c前面加上var果然就好了,謝謝你們! 05/01 01:46
12F:→ Bruce003: 我終於知道 var 的用途了 05/01 01:46
13F:→ Bruce003: 之前都以為有var跟沒var沒差,就像分號一樣XD 05/01 01:47
14F:→ Bruce003: 不過分號是真的有加跟沒加沒差嗎? 05/01 01:48
15F:推 eight0: 不是,有時可以省略不是全部都可以 05/01 13:59