如何循环遍历嵌套对象,使用for in循环并返回连接的每个属性字符串
How can i loop through a nested object, using the for in loop and return each property string concatenated?
例如,我想将first, middle和last的属性值作为连接字符串打印。
最终输出为:"John p . Doe"
var person = {
name: {
first: 'John',
middle: 'P',
last: 'Doe'
},
age: 35,
homeTown: 'Nashville, TN'
};
不需要循环,只需将属性连接起来。
var fullname = person.name.first + ' ' + person.name.middle + ' ' + person.name.last;
使用for-in
循环将是一个坏主意,因为对象不能保证保持它们的顺序。所以你可能会用Doe John P.
代替。
这类问题已经被发布了数百万次,在问之前做一些调查。
:
alert(person.name.first + ' ' + person.name.middle + ' ' + person.name.last);
可以使用object。
检查这个片段
var person = {
name: {
first: 'John',
middle: 'P',
last: 'Doe'
},
age: 35,
homeTown: 'Nashville, TN'
};
var nameObject = person.name;
var fullname = Object.keys(nameObject).reduce(function(previous, key) {
return previous +" "+ nameObject[key];
}, "");
console.log(fullname);
希望有所帮助
您可以为所需的属性名称使用数组(这保持了顺序),并映射值并将其连接到一个空格分隔的字符串。
var person = { name: { first: 'John', middle: 'P', last: 'Doe' }, age: 35, homeTown: 'Nashville, TN' };
console.log(['first', 'middle', 'last'].map(function (k) {
return person.name[k];
}).join(' '));
可以使用解构赋值
var person = {
name: {
first: 'John',
middle: 'P',
last: 'Doe'
},
age: 35,
homeTown: 'Nashville, TN'
};
var {first, middle, last} = person.name;
var fullname = `${first} ${middle} ${last}`;
console.log(fullname);
正如Barmar的回答所暗示的,你的例子只需要一个简单的连接就可以给出你的结果。
但是,在更一般的情况下,您可能希望遍历对象的每个属性,如果属性是对象,则也遍历该对象。
例如:function iterateThroughAllProperties(obj) {
Object.keys(obj).forEach(function(key, index) {
if(typeof obj[key] !== null && typeof obj[key] === 'object') {
iterateThroughAllProperties(obj[key]);
}
else {
// Do something with the property.
console.log(obj[key]);
}
});
}
相关文章:
- 事件循环、回调队列和 Javascript 的单线程是如何连接的
- Javascript/webpack:如何用自定义的文件循环连接目录中的所有json文件
- 如何在JavaScript中移除在循环中连接字符串时添加的额外字符
- 如何完成此循环?连接前面的两个字符
- React-Redux:当连接到处于状态的数组时无限循环
- 如何在 for 循环(javascript)中连接 2 个变量
- 通过 PHP 无限循环与服务器建立持久连接
- 在循环中连接变量
- Javascript:创建循环以连接选中复选框的结果
- 在 Node 中连接数组循环.js glob 结果
- 如何将 for 循环中的 set 变量连接起来,以用作输入中的名称以获取值
- 在jQuery中连接循环中的循环
- 如何在JavaScript中将内容循环、连接和推送到数组中
- JW播放器-当其他媒体(RTMP)断开连接时,循环MP4待机视频
- 在循环中连接var
- 是否可以在循环中的元素连接期间绑定事件
- 如何将循环中的局部数组连接到循环外的局部数组
- 如何循环遍历嵌套对象,使用for in循环并返回连接的每个属性字符串
- 如何连接php变量到javascript for循环
- 用循环连接两个数组