我创建了一个脚本here,它从.JSON中提取一些数据并用它创建一个对象。代码有效,但我需要将 Source 和 Destination 添加到类中,以便我可以将其导出并与其他文件一起使用。
所以我重写了我的代码来存储类here中的所有数据。相关部分如下所示:
const source = [];
const destination = [];
class Values {
constructor(source_address, source_lat, source_lng,
dest_address, dest_lat, dest_lng, scan_type) {
this.source_address = source_address;
this.source_lat = source_lat;
this.source_lng = source_lng;
this.dest_address = dest_address;
this.dest_lat = dest_lat;
this.dest_lng = dest_lng;
this.scan_type = scan_type;
}
};
//block is each section of the array
obj.forEach(block => {
source.push({
id: Values.source_lat + Values.source_lng,
"source-lat": Values.source_lat,
"source-lng": Values.source_lng,
"source_address": Values.source_address,
x: {
valueOf: function () {
var latlng = [
Values.source_lat,
Values.source_lng
];
var xy = map.FUNCTION_FOR_CONVERTING_LAT_LNG_TO_X_Y(latlng);
return xy[0];
}
},
y: {
valueOf: function () {
var latlng = [
Values.source_lat,
Values.source_lng
];
var xy = map.FUNCTION_FOR_CONVERTING_LAT_LNG_TO_X_Y(latlng);
return xy[1];
}
}
});
});
但它返回:
[
{
"id": null,
"x": {},
"y": {}
}
]
为什么所有数据值都读为空?我该如何解决这个问题?
答案 0 :(得分:0)
您甚至没有初始化Values
?你怎么能指望它返回任何东西?
在进行循环之前,需要使用一些数据对其进行初始化,如下所示:
var valueClass = new Value(--your constructor values here--);
执行此操作后,您将能够访问您的班级值,例如valueClass.dest_address
。
使用您的代码的小片段的示例:
var valueClass = new Value(--your constructor values here--);
//block is each section of the array
obj.forEach(block => {
source.push({
id: valueClass.source_lat + valueClass.source_lng,