假设我的应用程序包含对象类型A的数组:
{
prop1: 11,
prop2: 2222
}
如何添加数组新属性的每个对象,该属性将包含作为函数结果的值。我知道我可以手动完成,但AngularJS中存在任何聪明的函数:)?
答案 0 :(得分:2)
您自己添加的答案使用.map()
和.extend()
没有任何好处。由于您只添加了一个属性,因此可以执行以下操作:
result.forEach(function (obj) {
obj.iconname = getGameIconName(obj.gamename) + "_logo.png";
});
答案 1 :(得分:1)
您可以使用Angular forEach
功能 - 请参阅下面的演示:
var array = [{
prop1: 11,
prop2: 22
},{
prop1: 1,
prop2: 2
}];
angular.forEach(array,function(e){
e.sum = e.prop1 + e.prop2;
});
console.log(array);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
答案 2 :(得分:1)
我是这样做的:
/*
*private method preparing name of game icon
*/
var getGameIconName = function(gameName) {
return gameName.replace(/ /g, '_').toLowerCase();
};
...
result = result.map(function(obj) {
return angular.extend(obj, { iconname: getGameIconName(obj.gamename) + "_logo.png" });
});