【问题标题】:How to push an array into an array of objects using AngularJs如何使用 AngularJs 将数组推送到对象数组中
【发布时间】:2015-09-02 06:17:49
【问题描述】:

我有这个数组:

$scope.arrayList=[{FirstName:"",LastName:""}];
$scope.Address=[{address:"",PhonNumber:""}];

我想将另一个$scope.Address 数组推入first(index) 对象,输出应该是这样的:

$scope.arrayList=[{FirstName:"",LastName:"",$scope.Address}];

当我试图将地址推入数组时,它正在创建一个新对象, 所以我尝试了这个:

 $scope.arrayList[0].push($scope.Address);

但它显示此错误:“[0] 未定义”

【问题讨论】:

  • 你是怎么做到的?请添加您的尝试代码。
  • 你为什么要这样做?为什么要将 $scope.Address 存储在 $scope.arrayList 中。不能简单的存储数组吗?
  • @nikhil 实际上我正在动态获取数组,但我正在通过特定的 applicationId 将另一个数组循环到一个对象中
  • 没关系。我的意思是将与 $scope.Address 对应的数组存储在一个变量中,然后使用该变量将值分配给 $scope.Address 并更新 $scope.arrayList

标签: javascript arrays angularjs arraylist


【解决方案1】:

你不能推入一个对象——只能推入一个数组。 $scope.arrayList[0] 是一个对象(人)而不是一个数组(地址列表)。您必须在此对象中定义一个数组作为属性。

$scope.arrayList[0].addresses=[{address:"",PhonNumber:""}];

或者你用 person 对象定义地址列表并使用 push

$scope.arrayList=[{FirstName:"",LastName:"", addresses=[]}];
$scope.arrayList[0].addresses.push({address:"",PhonNumber:""});

【讨论】:

    【解决方案2】:

    我想你正在寻找这个

    $scope.arrayList[0].Address= $scope.Address;
    

    如果不提供键/值对,则不能将数组插入对象数组中。

    假设$scope.Address 存储$scope.arrayList[0] 的地址数组。

    如果不是这种情况,并且您想根据索引映射每个数组,那么试试这个:

    $scope.arrayList[0].Address= $scope.Address[0];
    

    【讨论】:

      猜你喜欢
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 2016-02-14
      • 2016-11-18
      • 2022-11-02
      • 2021-07-20
      • 1970-01-01
      相关资源
      最近更新 更多