2016-12-23 5 views
2

私のアプリは、オブジェクト型Aの配列を持っているとします関数の結果の値を持つ新しいプロパティで、コレクション内の各オブジェクトを拡張する方法

{ 
    prop1: 11, 
    prop2: 2222 
} 

として値が含まれます、配列の新しいプロパティの各オブジェクトに追加する方法関数の結果私は手動で行うことができますが、どんな巧妙な機能もAngularJSに存在します:)

+1

[ 'アレイ#forEach'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects:1つのプロパティのみを追加しているので、あなたはこれを行うことができます/ Array/forEach)? – JLRishe

+0

[angular.extend](https://docs.angularjs.org/api/ng/function/angular.extend)と[angular.forEach](https://docs.angularjs.org/api/ng/)をご覧ください。 function/angular.forEach) – georgeawg

答えて

2

あなた自身が用途を追加した答え.map() gooodの理由のために.extend()

result.forEach(function (obj) { 
    obj.iconname = getGameIconName(obj.gamename) + "_logo.png"; 
}); 
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>

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" }); 
     }); 
+2

'map'関数は新しい配列を作成します。新しいプロパティを追加するだけで*必要なものがあれば、' forEach'は実行します:) – kukkuz

関連する問題