2015-04-22 1 views
0

У меня есть следующий набор данныхКак получить только те данные, которые имеют конкретный код в crossfilter

var data= 
[ 
{code:501, value:25}, 
{code:501, value:30}, 
{code:501, value:30}, 
{code:501, value:35}, 
{code:501, value:60}, 
{code:502, value:25}, 
{code:502, value:25} 
] 

Я хочу получить обратно только набор данных, который содержит только данные с кодом 501. Я пробовал следующий код

var ndx=crossfilter(data); 
var dim1=ndx.dimension(function(d){return d.code}); 
var filtereddata=dim1.filter(501); 

Но его не работает. Это не возвращает мне данные, которые я хочу. Я попытался распечатать возвращаемые данные с помощью консоли, но напечатал некоторые расплывчатые вещи.

+0

Функция фильтра возвращает тот же размер объекта, а не отфильтрованных данных. Это позволит отфильтровать данные так, чтобы любые * другие * измерения отображали только 501. – Gordon

ответ

1

function getData(){ 
 
    var range = $("#range").val()*1; 
 
    if(isNaN(range)){ 
 
    alert("Kindly Enter Valid Number"); 
 
    }else{ 
 
    var data= 
 
[ 
 
{code:501, value:25}, 
 
{code:501, value:30}, 
 
{code:501, value:30}, 
 
{code:501, value:35}, 
 
{code:501, value:60}, 
 
{code:502, value:25}, 
 
{code:502, value:25} 
 
]; 
 

 
var ndx=crossfilter(data); 
 
var dim1=ndx.dimension(function(d){return d.code}); 
 
var filtereddata=dim1.filter(range); 
 
    alert("Requested Data is\n"+(JSON.stringify(dim1.top(Infinity)))); 
 
} 
 
    
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/crossfilter/1.3.11/crossfilter.js"></script> 
 
<input type='text' id='range'> 
 
<input type='button' value='getData' onclick='getData()'>

Я думаю, что вы ищете это .... : D

+0

Для примера Введите свой 501 –