如何打印嵌套对象的所有值

有一个这样的嵌套对象:

var conversation = { 'John': { 1: 'Test message 1', 2: 'Test message 2', 'Reply': { 3: 'Test message 3', 4: 'Test message 4' } }, 'Jack': { 5: 'Test message 5', 6: 'Test message 6' } }; 

我需要获取所有最终值,因此对于该示例,它是:

 Test message 1 Test message 2 Test message 3 Test message 4 Test message 5 Test message 6 

如何迭代对象? 在jQuery或JavaScript中是否有任何内置函数?

您可以使用一些递归来检查迭代的键是否是对象,然后打印:

 function printValues(obj) { for (var key in obj) { if (typeof obj[key] === "object") { printValues(obj[key]); } else { console.log(obj[key]); } } } printValues(conversation); 

演示: http : //jsfiddle.net/c7th1t8r/

jQuery有你可以使用的每个函数,除了一些递归到你的对象,直到你得到你可以打印的东西。

 var conversation = { 'John': { 1: 'Test message 1', 2: 'Test message 2', 'Reply': { 3: 'Test message 3', 4: 'Test message 4' } }, 'Jack': { 5: 'Test message 5', 6: 'Test message 6' } }; function iterate(obj) { if (typeof obj === 'string') { $('#log').append((obj + '
')); } if (typeof obj === 'object') { $.each(obj, function(key, value) { iterate(value); }); } } iterate(conversation);