2013-03-15 4 views
0

У меня есть линейный график, который заполняется данными в следующем формате:Фильтрация данных JSON D3.js

[{"id":"3", 
    "testSource_id":"2", 
    "dateTimeTaken":"2013-01-01 14:05:14", 
    "dateTimeReceived":"2013-03-01 14:05:45", 
    "reading":"0.90000", 
    "testSourceLocationDescription":"Somewhere",  
    "parameter_id":"3", 
    "inspectionPoint_id":"2", 
    "testSourceLowerLimit":"3.000000000000000", 
    "testSourceUpperLimit":"11.000000000000000", 
    "testSourceLocationLongtitude":"-8.459472656250000", 
    "testSourceLocationLatitude":"54.201010239738880", 
    "parameterType":"Flouride", 
    "unitMeasurement":"F", 
    "client_id":"1"},...................... 

Я пытаюсь фильтровать эти данные на основе значения передается от события щелчка на карта. Значение - i - передается правильно, но по какой-то причине моя функция фильтра не возвращает все данные, которые он должен, например, возвращать массив с 45 объектами, когда должен возвращаться 100? Может ли кто-нибудь помочь?

d3.json("Data.php", function(error,data) { 
    var data = data.filter(function(d) { return d.inspectionPoint_id == i; }) 
    console.log(data) 

data.forEach(function(d) { 
    d.inspectionPoint_id = +d.inspectionPoint_id; 
    d.dateTimeTaken = parseDate(d.dateTimeTaken); 
    d.reading = +d.reading; 
    d.parameterType = d.parameterType;}); 
+0

Вы уверены, что значение 'i' это передается правильно? Это откуда-то не показывают? Поскольку в вашем коде выше функция, которую вы передаете в метод 'filter()', не определяет (то есть «accept») параметр 'i'. – meetamit

+0

Я согласен с meetamit, вы имеете в виду: data.filter (function (d, i) {return + d.inspectionPoint_id == i;}) – Superboggly

+0

i - значение маркера карты, переданное из события click на карте - например для каждой контрольной точки на карту добавляется маркер [i]. Если console.log (i) передается правильное значение контрольной точки. Если вы делаете так, как вы сказали выше - data.filter (function (d, i) {return + d.inspectionPoint_id == i;}) не возвращает правильное значение - возвращает массив с одним объектом, который не содержит правильный идентификатор точки проверки? – Newbie

ответ

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