LPe*_*R90 5 javascript string iteration string-concatenation angularjs
我有一个 Javascript 对象,其中包含其他对象。每个包含的对象都有一个name属性。
我现在想做的是将这些名称属性连接到一个字符串。'and'但是,我希望这些字符串在最后一个字符串之前用逗号分隔。
为了更好地理解,我想要迭代的对象如下所示:
var objects = {
o1: {name: 'name1'},
o2: {name: 'name2'},
o3: {name: 'name3'}
};
Run Code Online (Sandbox Code Playgroud)
现在我最终想要的字符串是:'Concatenation of name1, name2 and name3'
到目前为止我尝试过使用angular.forEach:
var myString = 'Concatenation of ';
angular.forEach(objects, function(o) {
myString += o.name + ', ';
}
Run Code Online (Sandbox Code Playgroud)
不难注意到,我的字符串将变成'Concatenation of name1, name2, name3, '.
所以真正的问题是我如何检查我在对象中的哪个位置,并通过连接'and'而不是逗号或根本不使用逗号来做出适当的反应。我怎样才能做到这一点?
使用传统的 for 循环:
var myString = 'Concatenation of ';
var i = 0;
var keys = Object.keys(objects);
for (i =0; i<keys.length; i++) {
if (i > 0)
myString += (i < keys.length - 1) ? ', ' : ' and ';
myString += objects[keys[i]].name;
}
Run Code Online (Sandbox Code Playgroud)