-1

how to create object array from 2 different string and numeral array in angularJS? For example:

$scope.array1=['sale1','sale2','sale3']
$scope.array2=[2,3,4]

From these 2 arrays I want to make one array as

$scope.resultArray=[
                    {'key':'sale1','value':2},
                    {'key':'sale2','value':3},
                    {'key':'sale3','value':4}
                  ]
yog
  • 199
  • 1
  • 2
  • 20
  • Possible duplicate of http://stackoverflow.com/questions/2241875/how-to-create-an-object-property-from-a-variable-value-in-javascript – AndrasCsanyi Jul 20 '16 at 11:27

3 Answers3

1

You can simply do the following:

for (var i = 0; i < $scope.array1.length; i++) {
   $scope.resultArray.push({
     'key': $scope.array1[i],
     'value': $scope.array2[i]
   });
 }

A snippet working:

(function() {
  'use strict';
  
  angular.module('app', [])
    .controller('mainCtrl', function($scope) {
      $scope.array1 = ['sale1', 'sale2', 'sale3'];
      $scope.array2 = [2, 3, 4];
      $scope.resultArray = [];

      for (var i = 0; i < $scope.array1.length; i++) {
        $scope.resultArray.push({
          'key': $scope.array1[i],
          'value': $scope.array2[i]
        });
      }
    });
})();
<!DOCTYPE html>
<html ng-app="app">

<head><script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>

<body ng-controller="mainCtrl">
  <div ng-repeat="obj in resultArray track by $index">
    <span ng-bind="obj.key + ' - ' + obj.value"></span>
  </div>
</body>

</html>
developer033
  • 24,267
  • 8
  • 82
  • 108
0

With Underscore zip

$scope.array1=['sale1','sale2','sale3']
$scope.array2=[2,3,4]
$scope.resultArray = _.zip($scope.array1, $scope.array2)
Praveen Prasannan
  • 7,093
  • 10
  • 50
  • 70
-1
for(var i=0;$scope.array1.length>i;i++){
     $scope.resultArray.push({$scope.array1[i]:$scope.array2[i]});

}
Lax
  • 1,109
  • 1
  • 8
  • 13