通过点表示法访问JavaScript对象

时间:2017-01-20 16:16:01

标签: javascript

我有一个具有该结构的JavaScript对象

myJsObject= {
    "type": "FeatureCollection",
    "features": [{
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [84.1, 99.1]
        },
        "properties": {
            "value": "20",
            "s": "abc"
        }
    }, {
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [18.15, 9.73]
        },
        "properties": {
            "value": "0",
            "s": "def"
        }
    }, {
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [1.15, 4.78]
        },
        "properties": {
            "value": "10",
            "s": "fdg"
        }
    }, {
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [17.15, 5.13]
        },
        "properties": {
            "value": "5",
            "s": "dfs"
        }
    }]
}

我尝试以这种方式访问​​它:

myJsObject.features.forEach(function(d) {
    d.LatLng = new L.LatLng(d.geometry.coordinates[1],
        d.geometry.coordinates[0]);
});

返回给我undefined。 我可以这样访问

myJsObject.features;

并且喜欢这个

myJsObject.features[0];

但不喜欢这个

myJsObject.features.geometry;

为什么?我需要后者用于fr forEach loop ...

3 个答案:

答案 0 :(得分:3)

  

为什么?

myJson.features的值是一个数组。

它不是具有名为geometry的属性的对象。

数组包含对象,其属性名为geometry

答案 1 :(得分:0)

由于要素是一系列对象,因此您需要使用此格式myJson.features[0].geometry

答案 2 :(得分:0)

您有一系列要素,每个要素都有一个几何体,然后有一个坐标数组。所以你可以像这样访问:

plot(plot)