У меня есть линейный график, который заполняется данными в следующем формате:Фильтрация данных 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;});
Вы уверены, что значение 'i' это передается правильно? Это откуда-то не показывают? Поскольку в вашем коде выше функция, которую вы передаете в метод 'filter()', не определяет (то есть «accept») параметр 'i'. – meetamit
Я согласен с meetamit, вы имеете в виду: data.filter (function (d, i) {return + d.inspectionPoint_id == i;}) – Superboggly
i - значение маркера карты, переданное из события click на карте - например для каждой контрольной точки на карту добавляется маркер [i]. Если console.log (i) передается правильное значение контрольной точки. Если вы делаете так, как вы сказали выше - data.filter (function (d, i) {return + d.inspectionPoint_id == i;}) не возвращает правильное значение - возвращает массив с одним объектом, который не содержит правильный идентификатор точки проверки? – Newbie