2015-08-21 2 views
1

образца:.Как удалить дубликаты массивов (по идентификатору) при группировке? Данные

[ {_id:5,job:"a",exp:1, 
    tech : [ 
     "ERP Systems SAP R/3 ECC6.0", 
     "Operating Systems", 
     "Microsoft Dos" 
      ] 
    }] 

У меня есть 3-х человек (данные в 6 рядов (после сплющивания)) на основе «_id» я беру уникальные значения в круговой grpah (каждый отсчет слайс 1). не удался делать то же самое в диаграмме строк (с комментариями). Как я могу получить только «уникальный» уникальный идентификатор «id» и передать его «диаграмме 1-й строки» (в настоящее время в 1-й строке диаграммы каждая технология имеет счет 2. Я хочу удалить дубликаты на основе _Я бы).

Как сгруппировать технологии (только один раз за 1 id игнорировать остальных)?

jsfiddle here

какие-либо предложения .THANKS в Advance

+2

В принципе, вам нужно отслеживать идентификаторы, которые вы уже видели, и количество каждого идентификатора, который вы уже видели. Затем увеличьте количество отсчетов идентификатора, когда вы получите новый, уменьшите его, когда вы удалите его, и удалите идентификатор из списка ранее увиденных идентификаторов, когда счетчик будет равен нулю. Только увеличивайте свой фактический счетчик, когда увидите идентификатор, который вы еще не видели. Это сложно, и это одна из причин, по которой я написал Reductio, который обрабатывает это с использованием агрегации исключений: https://github.com/esjewett/reductio#exception-aggregation –

+0

Спасибо за ответ @EthanJewett, можете ли вы представить какой-либо пример? – sandeep

+0

Спасибо @EthanJewett (я не использовал reductio, но сделал то, что вы сказали) – sandeep

ответ

0

За разговор в комментариях, чтобы выполнить агрегацию groupAll по технологии с Reductio, вы хотите:

var techGroup = tech.groupAll() 
var reducer = reductio() 
    .groupAll(function(d) { return d.tech; }) 
    .exception(function(d) { return d._id; }) 
    .exceptionCount(true); 

reducer(techGroup); 

Это который не очень хорошо протестирован на данный момент (с использованием groupAll с агрегацией исключений). Он должен работать, и для него есть некоторые базовые тесты, но я боюсь, что я заставляю вас немного подойти к морпе. Пожалуйста, дайте мне знать, как это происходит.

+0

Hi @Ethan Jewett Извините за поздний ответ. Я реализовал ваше предложение. Он работает, но он занимает больше времени, чем обычный подход. – sandeep

+0

Hi sandeep - Я был бы рад взглянуть на пример и посмотреть, есть ли какие-либо оптимизации, которые я могу сделать в Reductio. Вообще говоря, groupAll, вероятно, просто менее эффективен, чем подход создания нескольких записей и использования стандартной группы. Но это делает что-то своеобразно другое, так что этого можно ожидать. –

+0

Спасибо за ответ @Ethan Jewett .i как можно скорее представит пример – sandeep

Смежные вопросы