0
我在咖啡腳本中嘗試過類似下面的內容。我期望在'objList'中填充和對象數組。它按預期運行,但在每次迭代中,它會用當前迭代中接收的對象覆蓋所有數組對象。在循環結尾,我看到所有的數組對象包含相同的值,它們對應於stringarray中的最後一個元素。如何使用循環填充咖啡腳本中的對象數組
類似的問題(與咖啡中的array.push有關)已經在stackoverflow上報告過,但沒有令人滿意的答案。似乎很多人都看到了這個問題。這是咖啡中的錯誤嗎?
strarray = [
"2|file2",
"1|file1",
"0|file0",
"3|file3",
]
obj = {color:"", file:"", dst:""}
objlist = for str in strarray
array = str.split "|"
obj.color = array[0]
obj.file = array[1]
obj.dst = "dst_" + obj.color
console.log "{color:#{obj.color}, file:#{obj.file}, dst:#{obj.dst}"
obj
for o in objlist
console.log "objList ["
console.log "{color:#{o.color}, file:#{o.file}, dst:#{o.dst},"
console.log "]"
輸出:
{color:2, file:file2, dst:dst_2
{color:1, file:file1, dst:dst_1
{color:0, file:file0, dst:dst_0
{color:3, file:file3, dst:dst_3
objList [
{color:3, file:file3, dst:dst_3,
]
objList [
{color:3, file:file3, dst:dst_3,
]
objList [
{color:3, file:file3, dst:dst_3,
]
objList [
{color:3, file:file3, dst:dst_3,
]
能
在這個別人的幫助?