如何在AngularJs中将对象转换为对象数组?

时间:2016-04-07 09:28:17

标签: javascript angularjs

这是我的代码

"type":{"0":   
        {   "label":"name",
    "required":false,
    "type":"String",
    },
    "1":
        {   "label":"email",
    "required":false,
    "type":"String",
    }
   }

在上面的代码中,我有Type对象,其中包含两个嵌套对象。现在我想使用angularjs将该对象转换为以下格式的对象数组。

OutPut应该是这样的: -

"type":[
        {   "label":"name",
    "required":false,
    "type":"String",
    },
        {   "label":"email",
    "required":false,
    "type":"String",
    }
   ]

7 个答案:

答案 0 :(得分:1)

或许这样的事情?



var arr = [];
Object.keys(obj).forEach(function(key)
{
    arr.push(obj[key]);
});
obj = { type: arr };




答案 1 :(得分:1)

您可以使用键作为数组的索引。

var object = { "type": { "0": { "label": "name", "required": false, "type": "String", }, "1": { "label": "email", "required": false, "type": "String", } } },
    array = [];

Object.keys(object.type).map(function (k) {
    array[+k] = object.type[k];
});
object.type = array;
document.write('<pre>' + JSON.stringify(object, 0, 4) + '</pre>');

答案 2 :(得分:0)

说你有

var obj = {"type":{"0":   
        {   "label":"name",
    "required":false,
    "type":"String",
    },
    "1":
        {   "label":"email",
    "required":false,
    "type":"String",
    }
   }}

你可以做到

var arr = [];
for(var key in obj.type){
  arr.push(obj.type[key])
}
obj.type = arr;

答案 3 :(得分:0)

您应该使用Object.keys

执行此操作
objsArray = [];
Object.keys(objs).forEach(function(key)
{
    objsArray.push(objs[key]);
});

答案 4 :(得分:0)

让我们说你的对象是:

var myObj = "type":{"0":   
        {   "label":"name",
    "required":false,
    "type":"String",
    },
    "1":
        {   "label":"email",
    "required":false,
    "type":"String",
    }
   };

如果你正在使用Lodash库:

myObj.type = _.map(myObj.type)

答案 5 :(得分:0)

为了加入聚会 - 迟到总比没有好。使用函数式编程使用数组非常有趣,而且接受的答案很好,但是稍微调整一下就可以得到更清晰的代码。

 obj = { type: Object.keys(obj).map(function(key) { return obj[key]; }) };

或使用更清洁的ES6 steez清洁剂

 obj = { type: Object.keys(obj).map(key => obj[key]) };

超级干净!

答案 6 :(得分:0)

您可以轻松地做到无循环:

// Assuming Problem: 
var objectToArray = 
{
"type":{"0": {"label":"name",
              "required":false,
              "type":"String",
             },
        "1": { "label":"email",
              "required":false,
               "type":"String",
             }
        }
    }

// Answer:
console.log( {type : Array.from(Object.values(objectToArray.type))} );