Я хотел бы изменить ниже массив с именем «данные» в результирующий список подсписков ниже «результат» по имениКак изменить массив словарей в список подсписок, представляющих комбинации двух атрибутов в массиве с помощью javascript?
data = [{'name':'abby','fruit':'apple'},{'name':'abby','fruit':'apple'},{'name':'abby','fruit':'banana'},{'name':'bobby','fruit':'apple'},{'name':'chris','fruit':'banana'}]
На основании этих данных следующие визуальные могут быть созданы (создано, чтобы помочь прояснить):
Я хотел бы представить массив в виде списка подсписков, где каждый подсписок имеет три элемента внутри него. Для каждой комбинации «имя» и «плод» должно быть шесть подсписков, а также количество этой комбинации. Первым пунктом в подсписке должно быть имя человека, вторым элементом должен быть плод, а третьим должен быть счет:
Таким образом, я хотел бы создать следующий список из шести предметов:
result = [['abby','apple',2],['bobby','apple',1],['chris','apple',0],['abby','banana',1],['bobby','banana',0],['chris','banana',1]]
метод, который я сейчас пытаюсь выяснить это выглядит следующим образом:
1) Определить уникальные значения в «имя» и «плод», используя underscore.js
var names = _.uniq(_.pluck(data,'name'))
['abby','bobby','chris']
var names = _.uniq(_.pluck(data,'fruit'))
fruit = ['apple','banana']
2) Создать все комбинации этих двух списков, которые я до сих пор выяснить, как это сделать в JavaScript
[['abby','apple'],['bobby','apple'],['chris','apple'],['abby','banana'],['bobby','banana'],['chris','banana']]
3) Из этого списка комбинаций, добавить счетчик, сколько раз это произошло в списке производить следующее (также по-прежнему пытается выяснить, как это сделать в JavaScript)
[['abby','apple',2],['bobby','apple',1],['chris','apple',0],['abby','banana',1],['bobby','banana',0],['chris','banana',1]]
Ну, конечная цель состоит в том, чтобы получить желаемый результат, поданный в высокие диаграммы (http://www.highcharts.com/docs/chart-and-series-types/heatmap), чтобы создать этот вид выше, но я могу удалить так как это не связано напрямую. – Chris
Ну, вы написали какой-нибудь код для любого из этих шагов? Я думаю, что это действительно должно быть разбито на три (или четыре) вопроса в противном случае (четвертое - это как показать это в высоких диаграммах). Кроме того, вы захотите показать, что вы пробовали. Прямо сейчас, похоже, вы просите SO добровольцев сделать эту работу за вас ... –
@MikeMcCaughan Я только изложил шаги, которые я пытаюсь сделать выше, и написал код для первого шага, m с трудностью выполнения даже второго шага, поэтому код кода не был написан после первого шага. Я принял ваш совет и написал этот второй шаг здесь (я могу удалить этот вопрос, если это необходимо): http://stackoverflow.com/questions/38983161/how-to-create-all-combinations-of-two-lists- с помощью поддерживающей JavaScript.Я также не уверен, что мой метод выше - лучший способ разобраться в этом. – Chris