我的應用程序具有關於一組固定國家的不同類型的數據,並保持在一致的順序數組中。CoffeeScript:初始化或增加數組中的值
data =
oranges: [1,2,3]
apples: [1,2,3]
cabbages: [1,2,3]
這些陣列獲得通過各種標準到新的陣列組合,我發現自己想寫這樣的代碼:
fruit = []
for key, arr of data # For each array
if key in ['oranges', 'apples'] # It it meets certain criteria
for val, i in arr # Use the values in the creation of a new array
fruit[i] += val
這並不是因爲工作,如果fruit[i]
沒有初始化+=
韓元」工作。
有多種解決方法。
1)第一填入新fruit
陣列用零:
for i in [0..len]
fruit[i] = 0
2)檢查fruit[i]
存在:
if fruit[i]?
fruit[i] += val
else
fruit[i] = val
這些都不似乎雅緻。我嘗試將方法2)提取到一個函數中,但我不得不承認,我無法讓我的頭轉向它。我想通過fruit
,克隆它(與arr.slice(0)
),然後設置fruit
到輸出,但它在每次迭代時都不適合這樣做。
數據格式是固定的,但除此之外,我的問題是「處理這個問題的最佳方法是什麼?」我接受使用CoffeeScript和/或ECMAScript 5和/或JQuery的答案。
'array'定義在哪裏? – elclanrs
@elclanrs對不起。修正了錯字。 'array'是'arr' –
'fruit [i] = fruit [i] + 1 || 1'? – david