修改代码以使用类

时间:2016-08-09 00:00:22

标签: javascript node.js class

我创建了一个脚本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": {}
  }
]

为什么所有数据值都读为空?我该如何解决这个问题?

1 个答案:

答案 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,