如何解决访问列表对象内的对象
所以我有这个对象,其中嵌套了其他对象和数组。我想创建一个函数来列出这个对象及其嵌套对象中的所有元素。我确实创建了一个函数,但是当它列出对象中的项目时,它会在有嵌套对象或数组的部分显示 [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
}
解决方法
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 = ''
let itemsSubList = ''
for (let key in object) {
var item = object[key]
if( isObject(item) ){
for (let k in item) {
document.write('<li>---' + k + ' : ' + item[k] + '</li>');
}
}else{
if( Array.isArray(item) ){
document.write('<li>----'+ key +':</li>');
for (let l in item[0]) {
document.write('<li>------' + l + ' : ' + item[0][l] + '</li>');
}
}else{
document.write('<li>' + key + ' : ' + object[key] + '</li>');
}
}
}
// return itemsList
}
function isObject(objValue) {
return objValue && typeof objValue === 'object' && objValue.constructor === Object;
}
listWeather(weather)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。