1

I have one object and one array defined,

      $scope.multipleTransferGotten = [];

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

I have the below line of code which picks an array in session;

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

Which I then loop through the array gotten from the session and bind each of its results to $scope.newParamaters and push into $scope.multipleTransferGotten as seen below;

 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);
      }

The problem I am facing is that only the last index in the array fills up $scope.multipleTransferGotten array, that is if I looped through 2 arrays, only the $scope.pickedTransfers[1] fills up the $scope.multipleTransferGotten array twice.

Please, I need help, I want it to read, push and store both $scope.pickedTransfers[0] and $scope.pickedTransfers[1]. Thank you

0

1 Answer 1

1

You overwrite the same object and get for all entries the same values, because of the same object reference.

You need an empty object with no properties and the add all wanted properties to the object, then you can push this object to the array.

I suggest to use a temporary variable, which is not part of $scope.

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

    $scope.multipleTransferGotten.push(newParameters);
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.