修改代码以使用类

Modifying code to use classes

本文关键字:代码 修改      更新时间:2023-09-26

我在这里创建了一个脚本,从. json中提取一些数据,并用它创建一个对象。代码可以工作,但是我需要将SourceDestination添加到一个类中,以便我可以导出它并与其他文件一起使用。

所以我重写了我的代码来存储所有的数据在这里的类。相关部分如下:

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": {}
  }
]

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

您甚至没有初始化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,