这是我的情况:我正在使用一个包含一堆嵌套对象的数组。其中一个嵌套对象的名称会动态更改。如何始终如一地访问其中一个子对象的键?
以下是它可以拥有的路径的几个例子:
kml[id].overlayData._layers.136._bounds._northEast.lat
kml[id].overlayData._layers.143._bounds._northEast.lat
kml[id].overlayData._layers.82._bounds._northEast.lat
kml[id].overlayData._layers.87._bounds._northEast.lat
kml[id].overlayData._layers.76._bounds._northEast.lat
我想要访问的子对象是'lat',其中有几个键。
对任何奇怪/错误使用术语的道歉,我仍然试图理解这样的概念。
答案 0 :(得分:1)
您可以使用Object.keys
获取密钥。
var keys = Object.keys(kml[id].overlayData._layers);
// access
keys.forEach(function (key) {
// kml[id].overlayData._layers[key]._bounds._northEast.lat
});
对于只有一个未知密钥,您可以直接使用密钥数组的第一个元素
var key = Object.keys(kml[id].overlayData._layers)[0];
// access with
kml[id].overlayData._layers[key]._bounds._northEast.lat
答案 1 :(得分:0)
如果我理解正确的话,试试这个:
var number = 354; //whatever number you want to get the value from
kml[id].overlayData._layers['number']._bounds._northEast.lat
请注意,您无法使用blahblah.123
来访问已启动的号码属性;请改用blahblah['123']
。这也允许您传入变量,如上例所示。
答案 2 :(得分:0)
你可以循环感谢for..in循环
for (var prop in kml[id].overlayData._layers)
console.log(kml[id].overlayData._layers[prop]._bounds._northEast.lat);