AngularJS ForEach将新项目推送到对象中

AngularJS ForEach push new item into object

本文关键字:对象 ForEach 新项目 AngularJS      更新时间:2023-09-26

我有一个JavaScript对象,它有一个零售商列表

var listRetailers = [
{"url":"http://www.fake1.com", "img":"images/1logo.jpg"},
 {"url":"http://www.fake2.com", "img":"images/2logo.gif"},
 {"url":"http://www.fake3.com", "img":"images/3logo.gif"},
 ]

我想把一个新的键:值推到每个项目中:

object.push("storeNumber": "1");

因此更新后的JavaScript对象将是

var listRetailers = [
{"url":"http://www.fake1.com", "img":"images/1logo.jpg", "storeNumber":"1"},
 {"url":"http://www.fake2.com", "img":"images/2logo.gif", "storeNumber":"1"},
 {"url":"http://www.fake3.com", "img":"images/3logo.gif", "storeNumber":"1"},
 ]

在我的角度控制器中,我有

$scope.retailers = listRetailers ;
angular.forEach($scope.retailers, function(obj){
          obj.push("storeNumber": "1");
        });

错误状态:对象#没有方法"推送"

我在这里错过了什么?

这是因为obj指的是零售商对象,而不是数组。如果要向其添加属性,可以使用括号[]表示法或点.表示法来定义它们。

angular.forEach($scope.retailers, function(obj){
   //Using bracket notation
   obj["storeNumber"] = 1;
   //Using dot notation
   obj.storeNumber = 1;
});