gpt4 book ai didi

javascript - 循环遍历对象项

转载 作者:行者123 更新时间:2023-12-03 07:55:01 25 4
gpt4 key购买 nike

我有非常复杂的对象,我需要循环遍历多个级别的项目。这很快就变得棘手,我现在陷入困境。

我尝试过的(请注意,我添加了一个错误):

var stuffCount = Object.keys(stuff).length;

//Loop through initial items in object
for( i = 0; i < stuffCount; i++ ) {

// Error occurs on this line:
// Uncaught TypeError: Cannot read property 'points' of undefined
var pointCount = stuff[i].points.length;

var coordinates = [];

//Loop through points in initial items
for( r = 0; r < pointCount; r++ ) {

coordinates.push(new google.maps.LatLng(
stuff[i].points[r].lat,
stuff[i].points[r].lng ));
}

}
<小时/>

对象:它甚至更复杂,但为了这个问题我让它尽可能简单。

var stuff = {

first: {

center: {
lat: 11,
lng: 22
},
points: [
{
lat: 11,
lng: 22
},
{
lat: 33,
lng: 44
},
{
lat: 55,
lng: 66
},
]
},

second: {

center: {
lat: 11,
lng: 22
},
points: [
{
lat: 11,
lng: 22
},
{
lat: 33,
lng: 44
},
{
lat: 55,
lng: 66
},
]
},

third: {

center: {
lat: 11,
lng: 22
},
points: [
{
lat: 11,
lng: 22
},
{
lat: 33,
lng: 44
},
{
lat: 55,
lng: 66
},
]
},
}
<小时/>

我试图通过使用循环来缩小代码。它用于在 Google map 上显示多边形。我可以一项一项地完成,但代码会非常大,因为我有大约 100 个 + 我希望它是动态的,这样我将来可以轻松添加新的多边形,而无需进行太多更改代码。

我的代码有什么问题?

最佳答案

问题是您正在尝试使用编号索引从内容对象中检索键。实际上,您不需要键的计数,请使用 for...in 循环,如下所示:

//Loop through initial items in object
for(var i in stuff) {

// Error occurs on this line:
// Uncaught TypeError: Cannot read property 'points' of undefined
var pointCount = stuff[i].points.length;

var coordinates = [];

//Loop through points in initial items
for( r = 0; r < pointCount; r++ ) {

coordinates.push(new google.maps.LatLng(
stuff[i].points[r].lat,
stuff[i].points[r].lng ));
}

}

关于javascript - 循环遍历对象项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34833994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com