【发布时间】:2021-08-29 21:33:00
【问题描述】:
所以我有这个对象,其中嵌套了其他对象和数组。我想创建一个函数,列出该对象及其嵌套对象中的所有元素。我确实创建了一个函数,但是当它列出对象中的项目时,它会在有嵌套对象或数组的部分显示 [object object]
这是我拥有的对象:
let weather = {
base: "stations",
clouds: {
all: 1
},
coord: {
lat: 43.65,
lon: -79.38
},
dt: 1507510380,
id: 6167863,
main: {
humidity: 77,
pressure: 1014,
temp: 17.99,
temp_max: 20,
temp_min: 16
},
name: 'Downtown Toronto',
sys: {
type: 1,
id: 2117,
message: 0.0041,
country: 'CA',
sunrise: 1507548290,
sunset: 1507589027,
type: 1
},
visibility: 16093,
weather: [
{
description: 'clear sky',
icon: '01n',
id: 800,
main: "Clear"
}
],
wind: {
deg: 170,
speed: 1.5
}
}
我创建的函数:
function listWeather(object) {
let itemsList = ''
for (let key in object) {
itemsList+= '<li>' + key + ' : ' + object[key] + '</li>'
}
return itemsList
}
【问题讨论】:
-
你目前没有做任何事情来处理嵌套;你打算写一个递归函数吗?
-
是的,我想要一个递归函数。我不确定如何编写函数来处理嵌套元素和数组
-
你已经有了它——你只需要决定你想如何处理嵌套和你希望输出有多漂亮(以及你将如何确定一个对象值是否是一个对象/大批)。非常粗略,没有想过......好吧,任何事情:jsfiddle.net/davelnewton/p9ezyd1v
-
注意 IRL 您可能希望拆分每个对象关键数据的处理方式、以不同方式排序等等——虽然它表面上是一个简单的递归函数,但不太可能简单的方法是可行的。您更有可能需要以特定方式处理每个键,例如,跳过显示、格式化输出(如日出/日落时间)等等。
标签: javascript arrays function javascript-objects