繁体   English   中英

如何显示对象中的所有内容,包括嵌套对象和数组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM