это просто логика проблема, если у меня есть данные: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
но результат не тот, который я ожидал, есть все те же 'to' в том же 'from':
[
{
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?
Вы знаете, что используете неверную карту, когда вам нужно объявить массив вне функции карты. я могу предложить уменьшить? http://jsfiddle.net/eaL6t1cn/ –
@JedSchneider, я считаю, что вы правы. Но у вашей скрипки есть небольшая проблема, она возвращает повторяющиеся записи. И если я попытаюсь «возвратиться» внутри цикла 'for', он выдает ошибку. Как вы справляетесь с этим? – mutil
Извините @multi Я не отлаживал точность, просто показал вам, как передать массив, чтобы уменьшить использование вашего метода. я могу посмотреть на него немного глубже и дать ответ. Я не понимал, что это приводит к неточным результатам. –