Получение значений в crossfilter.dimension

Привет, я новичок в JS и Crossfilter. Я использую кроссфильтр с моими данными (.csv файл) и извлекли отдельные значения в столбце, используя

var scoreDim = ppr.dimension(function (d) {
    return d.score;
});

Также я мог бы получить количество для каждого значения, используя

var scoreDimGroup = scoreDim.group().reduceCount();

Я мог бы использовать dc.js построить график и результат выглядит правильно. Но как мне получить значения в scoreDim а также scoreDimGroup так что я могу использовать его для дальнейшей обработки в моем коде. Когда я смотрю на объект с помощью отладчика, я мог видеть кучу функций, но не мог видеть фактические значения, содержащиеся в объектах.

введите описание изображения здесь

3 ответа

Решение
scoreDim.top(Infinity)

получит записи.

scoreDimGroup.top(Infinity)

извлечет группы (пары ключ-значение значения измерения и счетчика).

Как правило, такие вещи хорошо описаны в документации по Crossfilter API.

Вы можете использовать метод top объекта group:

var groupings = teamMemberGroup.top(Infinity);

Это возвращает массив групп, который будет иметь структуру, которую вы построили в методе Reduce. Например, чтобы вывести ключ и значение, вы можете сделать это: groupings.forEach(function (x) { console.log(x.key + x.value.projectCount); });

Вы можете получить доступ к значениям измерения таким же образом:

var dimData = teamMemberDimension.top(Infinity);
    dimData.forEach(function (x) {
        console.log(JSON.stringify(x));
    });

Вот простой пример этого: http://jsfiddle.net/djmartin_umich/T5v4N/

Расти имеет хороший учебник о том, как это работает на http://blog.rusty.io/2012/09/17/crossfilter-tutorial/

Если вы хотите просмотреть эти значения в консоли, вы можете использовать эту функцию print_filter, которая была упомянута в руководстве!

( http://www.codeproject.com/Articles/693841/Making-Dashboards-with-Dc-js-Part-1-Using-Crossfil)

По сути, вы должны включить этот бит кода в рендеринг javascript диаграмм перекрестного фильтра до того, как определите свой источник данных или переменную ndx:

function print_filter(filter) {
    var f = eval(filter);
    if (typeof(f.length) != "undefined") {}else{}
    if (typeof(f.top) != "undefined") {f=f.top(Infinity);}else{}
    if (typeof(f.dimension) != "undefined") {f=f.dimension(function(d) { return "";}).top(Infinity);}else{}
    console.log(filter+"("+f.length+") = "+JSON.stringify(f).replace("[","[\n\t").replace(/}\,/g,"},\n\t").replace("]","\n]"));
    };

Тогда вы можете просто запустить print_filter(ScoreDim) в вашей консоли! Это так просто! Вы можете использовать это, чтобы увидеть все объекты, которые вы создаете с использованием перекрестного фильтра, включая группы и т. Д.

Надеюсь это поможет!

Другие вопросы по тегам