【发布时间】:2015-12-21 19:41:33
【问题描述】:
我有一个 Javascript 对象,其中包含其他对象。每个包含的对象都有一个name 属性。
我现在想做的是将这些名称属性连接到一个字符串。但是,我希望这些字符串在最后一个字符串之前用逗号和'and' 分隔。
为了更好地理解,我要迭代的对象如下所示:
var objects = {
o1: {name: 'name1'},
o2: {name: 'name2'},
o3: {name: 'name3'}
};
现在我最后想要的字符串是:'Concatenation of name1, name2 and name3'
到目前为止我尝试过的是使用angular.forEach:
var myString = 'Concatenation of ';
angular.forEach(objects, function(o) {
myString += o.name + ', ';
}
不难发现,我的字符串会变成'Concatenation of name1, name2, name3, '。
所以真正的问题是如何检查我在对象中的哪个位置,并通过连接 'and' 而不是逗号或根本没有逗号来做出适当的反应。我该怎么做?
【问题讨论】:
-
angular.forEach(objects, function(o,i,r) { ... if(r[i+1]) myString+=", ";但更好的是myString=angular.map(objects, function(o) { return o.name;}).join(", ");
标签: javascript angularjs string iteration string-concatenation