我正在使用带有Crossfilter的Javascript构建仪表板。
我正在将此功能与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"
}
]
任何想法在这里有什么问题吗?
答案 0 :(得分:1)
嗨,如果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()并检查其中出现错误。
答案 1 :(得分:0)
尝试使用d [“ pop”]代替d.pop并使用所有键。恐怕javascript不会使您的键和字典功能有所不同。