Javascript JQuery: объект не поддерживает свойство или метод toLowerCase - PullRequest
0 голосов
/ 25 октября 2018

Я создаю панель инструментов в Javascript с помощью Crossfilter.

Я использую эту функцию с Jquery:

   // d3's JSON call to grab the JSON data
        d3.json("universe.json", function(error, data) {
          // used by d3's dateFormat to parse the date correctly
          var dateFormat = d3.time.format("%Y-%m-%dT%H:%M:%S");

          // add map markers to map layer
          data.forEach( function(d,i) {

            d.date_e = dateFormat.parse(d.date_entered);
            d.date_i = dateFormat.parse(d.date_issued);


          });


  var tableDimension = xdata.dimension(function(d) {
  return d.pop.toLowerCase() + ' ' +
    d.City.toLowerCase() + ' ' +
    d.Province.toLowerCase() + ' ' +
    d.zip.toLowerCase() + ' ' +
    d.ward.toLowerCase();
});

Это пример моих данных:

Ошибка : SCRIPT438: Объект нене поддерживает свойство или метод toLowerCase

Я использую последнюю версию JQuery: https://github.com/jquery/jquery-ui/blob/master/external/jquery-2.0.2/jquery.js

[
  {
    "KMIST_TEMP_ID": "KTMPVN12119",
    "ID POP": "",
    "type": 2018,
    "pop": "No",
    "name": "Nha Thuoc An Binh",
    "Country": "",
    "Province": "Ho Chi Minh Province",
    "City": "Ho Chi Minh",
    "zip": "Thu Duc",
    "ward": "Linh Trung",
    "name_full": "Ho Chi Minh ,Nha Thuoc An Binh ,Thu Duc, Linh Trung",
    "latitude": 10.8539167,
    "longitude": 106.7716921,
    "geo": "106.7716921,10.8539167",
    "amenity": "pharmacy",
    "date_entered": "2015-10-30T00:00:00",
    "date_issued": "2015-10-30T00:00:00"
  }
]

Есть идеи, что здесь не так?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Привет, если ваш d - это весь ваш объект, который вы записываете в качестве образца данных, то это массив. Поэтому вы должны манипулировать данными с индексом.

var tableDimension = xdata.dimension(function(d) {
  return d[0].pop.toLowerCase() + ' ' +
    d[0].City.toLowerCase() + ' ' +
    d[0].Province.toLowerCase() + ' ' +
    d[0].zip.toLowerCase() + ' ' +
    d[0].ward.toLowerCase();
});

Если это не так, тогдавсе выглядит соответствующим образом. попробуйте удалить один за другим .toLowerCase () и проверить, в котором он получает ошибку.

0 голосов
/ 25 октября 2018

Попробуйте использовать d ["pop"] вместо d.pop и со всеми вашими ключами.Я боюсь, что JavaScript не делает различий между вашими ключами и функциями словаря.

...