如何将数组$ scope转换为json对象?

时间:2017-05-07 13:23:57

标签: javascript angularjs json

我想要转换为json对象的角度数组$scope.items。我一直试图使用JSON.stringify()转换它,但它总是返回[]

这是我的代码:

$scope.items = [];

var scopeItems = {};

scopeItems = JSON.stringify($scope.items);

console.log(scopeItems);

我在代码中使用this link作为参考。

我在这里做错了什么?

感谢任何可以帮助我的人!

1 个答案:

答案 0 :(得分:2)

JSON.stringify将数组转换为字符串。不是一个对象。如果你想将它转换为一个对象,那么使用像这样的reduce

$scope.items = ["item1","item2"];

var scopeItems = {};

scopeItems  = $scope.items.reduce(function(acc, cur, i) {
  acc[i] = cur;
  return acc;
}, {});

console.log(scopeItems);

演示

angular.module("app",[])
.controller("ctrl",function($scope){

 $scope.items = ["item1","item2"];

    var scopeItems = {};
    
    scopeItems  = $scope.items.reduce(function(acc, cur, i) {
    debugger
      acc[i] = cur;
      return acc;
    }, {});
    
    console.log(scopeItems);
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
 
</div>