這只是邏輯問題,如果我有數據:的CoffeeScript - 操縱JSON
[
{
from: 'user a',
to: 'user b'
},
{
from: 'user a',
to: 'user c'
},
{
from: 'user b',
to: 'user d'
},
{
from: 'user c',
to: 'user d'
},
{
from: 'user c',
to: 'user d'
}
]
,我需要的數據操縱到:
[
{
from: 'user a',
to: ['user b', 'user c']
},
{
from: 'user b',
to: ['user d']
},
{
from: 'user c',
to: ['user d']
}
]
我用這個代碼:
result = []
objTemp = obj
from = []
obj.map (o) ->
if o.from not in from
from.push o.from
to = []
objTemp.map (oo) ->
if oo.from is o.from and oo.to not in to
to.push oo.to
temp =
from: o.from
to: to
result.push temp
但結果不是我所期望的,在'from'中仍然存在'to':
[
{
from: 'user a',
to: ['user b', 'user c']
},
{
from: 'user b',
to: ['user d']
},
{
from: 'user c',
to: ['user d', 'user d'] <-- the problem
}
]
你們如何使用coffeescript解決它?
當你必須在map函數外聲明一個數組時,你知道你使用的map錯誤。我可以建議減少嗎? http://jsfiddle.net/eaL6t1cn/ – 2014-10-28 16:35:26
@JedSchneider,我相信你是對的。但是你的小提琴有一個小問題,它會返回重複的條目。如果我嘗試在'for'循環中'返回',它會拋出一個錯誤。你如何處理這個問題? – mutil 2014-10-28 16:59:53
對不起@multi我沒有調試的準確性,只是告訴你如何通過數組來減少使用你的方法。我可以更深入地觀察並提供答案。我沒有意識到這是造成不準確的結果。 – 2014-10-28 17:24:37