javascript - 遍历数组并将每个索引绑定(bind)到 AngularJS 中的另一个数组

标签 javascript arrays angularjs for-loop

我定义了一个对象和一个数组,

      $scope.multipleTransferGotten = [];

      $scope.newParameters = {
        UserId: "",
        Udid:"",
        TransType: "",
        SourceAccNumber: "",
        SourceAccName:"",
        BeneficiaryAccName: "",
        BeneficiaryAccNumber: "",
        Amount: "",
        Remarks: "",
        DestBankCode:"",
        AuthToken:"",
        UseToken: ""
      };

我有下面一行代码,它在 session 中选择一个数组;

 $scope.pickedTransfers = bank.getPaymentList($scope.paymentList);

然后我循环遍历从 session 中获取的数组并将其每个结果绑定(bind)到 $scope.newParamaters 并推送到 $scope.multipleTransferGotten 中,如下所示;

 for (var i = 0; i < $scope.pickedTransfers.length; i++)
      {
        $scope.newParameters.UserId = bank.getUserId();
        $scope.newParameters.Udid = bank.getUuid();
        $scope.newParameters.TransType = $scope.pickedTransfers[i].TransType;
        $scope.newParameters.SourceAccNumber = $scope.pickedTransfers[i].SourceAccNumber;
        $scope.newParameters.SourceAccName = bank.getAccountInfo()[i].CUSNAME;
        $scope.newParameters.BeneficiaryAccName = $scope.pickedTransfers[i].BeneficiaryAccName;
        $scope.newParameters.BeneficiaryAccNumber = $scope.pickedTransfers[i].BeneficiaryAccNumber;
        $scope.newParameters.Amount = $scope.pickedTransfers[i].Amount;
        $scope.newParameters.Remarks = $scope.pickedTransfers[i].Remarks;
        $scope.newParameters.DestBankCode = $scope.pickedTransfers[i].DestBankCode;
        $scope.newParameters.AuthToken = $localStorage.AuthToken;
        $scope.newParameters.UseToken = bank.getUseToken();

        $scope.multipleTransferGotten.push($scope.newParameters);
      }

我面临的问题是只有数组中的最后一个索引被填满 $scope.multipleTransferGotten 数组,也就是说,如果我遍历 2 个数组,只有 $scope.pickedTransfers[1] 两次填充 $scope.multipleTransferGotten 数组。

拜托,我需要帮助,我希望它能够读取、推送和存储 $​​scope.pickedTransfers[0] 和 $scope.pickedTransfers[1]。谢谢

最佳答案

由于相同的对象引用,您覆盖相同的对象并为所有条目获得相同的值。

您需要一个没有属性的空对象,并将所有需要的属性添加到该对象,然后您可以将该对象推送到数组。

我建议使用一个临时变量,它不是$scope的一部分。

var newParameters;
for (var i = 0; i < $scope.pickedTransfers.length; i++) {
    newParameters = {};
    newParameters.UserId = bank.getUserId();
    // ...

    $scope.multipleTransferGotten.push(newParameters);
}

关于javascript - 遍历数组并将每个索引绑定(bind)到 AngularJS 中的另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49339774/

相关文章:

javascript - 如何通过 Extjs BoxComponent 通过提交表单获取单选按钮值?

javascript - 元素 onkeydown 键码 javascript

javascript - shopify 和 instafeed.js 兼容性问题

arrays - 在 Laravel 应用程序的数据库中存储数组或 std 对象

javascript - 在 AngularJS 单元测试中断言递归 $timeout 中的 http 调用次数

javascript - AngularJS : Scope not shared across directives

javascript - 链接到打开的选项卡

c++ - 将深度缓冲区提取到数组

python - 在python中用字典值划分列表元素

angularjs - 安装 angular 1.5 类型