Angularjs:将对象转换为数组

时间:2015-03-12 11:22:12

标签: javascript arrays angularjs

这是我的data

 $scope.data = [ 
           {
            "top":"2",
            "status":"1",
            "name":"Anna",
           },
           {
            "top":"2",
            "status":"1",
            "name":"Jodie",
           },
           {
            "top":"2",
            "status":"1",
            "name":"susan",
           }
];

现在我想将对象转换为数组。当我运行我的程序时,我在控制台日志中得到以下输出:

{
  "1":{
       "2":"3"
      }
}

但是我需要它们作为数组输出而不是对象。有人告诉我使用map功能,但是我需要在不使用map功能的情况下执行它们,因为它会在我的项目过程中引起冲突。有没有其他方法可以不使用地图功能?

输出中的1表示状态对象。 2表示热门对象,3表示排名靠前的学生人数。

这是我到目前为止的代码:http://jsfiddle.net/DharkRoses/sjz5aLv1/

有什么建议吗? TIA

更新: 我想要的输出看起来像这样:

(
  [1] =>Array
       (
       [2] => 3
       )
)

1 个答案:

答案 0 :(得分:2)

我在下面的数组中进行处理:

$scope.data = [
    { "top": "1", "status": "1", "name": "Anna" },
    { "top": "2", "status": "1", "name": "Jodie" },
    { "top": "2", "status": "1", "name": "Susan" },
    { "top": "3", "status": "1", "name": "Eddie" },
    { "top": "2", "status": "2", "name": "Megan" },
    { "top": "2", "status": "2", "name": "Frank" }
];

如果我没有错,你想得到这样的回应:

[
    { 
        "1": [
                { "1": 1 },
                { "2": 2 },
                { "3": 1 }
        ]
    },
    {
        "2": [
                { "2": 2 }
        ]
    }
]

这是一个现场演示,以达到以上效果:http://jsfiddle.net/nerezo/vz0dbdeq/