[英]How to display everything from an object including nested objects and arrays?
我有一个具有嵌套对象和数组的对象。 我正在尝试console.log
所有数据,包括嵌套对象内的数据,但没有这样做。 我得到的结果显示了除对象之外的所有数据。 我得到[Object object]
而不是那些。 我想要的是在控制台中以一种不是对象或 JSON 的格式显示所有内容(如下面的结果,除了我还想显示 f 和 g 的值)。
这是对象:
let data = {
a: 'Tesla',
b: 'Mclaren',
c: 'Ferrari',
d: 'Lamborghini',
e: 'Lotus',
'f':{
name: 'John',
'e-mail': 'xyz@example.com',
phone: '+12345678',
country: 'USA',
car: 'Toyota Prius'
},
'g':{
name: 'Sophie',
'e-mail': 'xyz@example.com',
phone: '+12345678',
country: 'UK',
car: 'Nissan Bluebird'
},
h: 'Volkswagen',
i: 'Bugatti',
j:[
'% mileage',
'% top speed',
'% suspension',
'% navigation',
'% horsepower',
'% 0-60s'
]
}
这是我试过的代码:
for(var key in data){
console.log(key + " : " + data[key]);
}
这是我得到的结果:
a : Tesla
b : Mclaren
c : Ferrari
d : Lamborghini
e : Lotus
f : [object Object]
g : [object Object]
h : Volkswagen
i : Bugatti
j : % mileage,% top speed,% suspension,% navigation,% horsepower,% 0-60s
console.log(JSON.parse(JSON.stringify(data)))
:
如果您只是console.log(obj)
,Chrome 和 Firefox 至少会记录对对象的引用。 console.log(JSON.stringify(obj))
会将您的对象转换为不是对象的 JSON。 console.log(JSON.parse(JSON.stringify(obj)))
将把 JSON 转换回一个对象,作为一个单独的、孤立的引用,不会改变。
let data = { a: 'Tesla', b: 'Mclaren', c: 'Ferrari', d: 'Lamborghini', e: 'Lotus', 'f':{ name: 'John', 'e-mail': 'xyz@example.com', phone: '+12345678', country: 'USA', car: 'Toyota Prius' }, 'g':{ name: 'Sophie', 'e-mail': 'xyz@example.com', phone: '+12345678', country: 'UK', car: 'Nissan Bluebird' }, h: 'Volkswagen', i: 'Bugatti', j:[ '% mileage', '% top speed', '% suspension', '% navigation', '% horsepower', '% 0-60s' ] }; console.log(JSON.parse(JSON.stringify(data)));
您可以使用:
console.log(JSON.stringify(data));
要么
console.log(data);
如果是node环境,可以使用util模块中的inspect方法: https ://nodejs.org/api/util.html#util_util_inspect_object_showhidden_depth_colors
const util = require('util');
console.log(util.inspect(bigObject, false, null, true)) ;
您也可以像上面一样通过将最后一个参数设置为 true 来让它用颜色记录!
如果你在浏览器环境下,你仍然可以使用 util 模块,但是你将不得不使用像 webpack 或 browserify 这样的捆绑器。
如果您不关心输出格式console.log(JSON.stringify(data, null, 2))
应该可以正常工作
如果你迭代一个包含对象实例的对象,那么它将被记录为引用。如果你想迭代以在迭代时使用 typeof 将对象扔到对象中。如果它是对象,则迭代内部对象。
let data = { a: 'Tesla', b: 'Mclaren', c: 'Ferrari', d: 'Lamborghini', e: 'Lotus', 'f':{ name: 'John', 'e-mail': 'xyz@example.com', phone: '+12345678', country: 'USA', car: 'Toyota Prius' }, 'g':{ name: 'Sophie', 'e-mail': 'xyz@example.com', phone: '+12345678', country: 'UK', car: 'Nissan Bluebird' }, h: 'Volkswagen', i: 'Bugatti', j:[ '% mileage', '% top speed', '% suspension', '% navigation', '% horsepower', '% 0-60s' ] } for(var key in data){ console.log(key + ": ", data[key]); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.