[英]How to convert Object to Array of Objects in AngularJs?
这是我的代码
"type":{"0":
{ "label":"name",
"required":false,
"type":"String",
},
"1":
{ "label":"email",
"required":false,
"type":"String",
}
}
在上面的代码中,我有一个包含两个嵌套对象的Type
对象。 现在我想使用 angularjs 将该对象转换为以下格式的对象数组。
输出应该是这样的:-
"type":[
{ "label":"name",
"required":false,
"type":"String",
},
{ "label":"email",
"required":false,
"type":"String",
}
]
也许是这样的?
var arr = []; Object.keys(obj).forEach(function(key) { arr.push(obj[key]); }); obj = { type: arr };
您可以使用键作为数组的索引。
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>');
您应该使用Object.keys执行此操作
objsArray = [];
Object.keys(objs).forEach(function(key)
{
objsArray.push(objs[key]);
});
说你有
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;
假设您的对象是:
var myObj = "type":{"0":
{ "label":"name",
"required":false,
"type":"String",
},
"1":
{ "label":"email",
"required":false,
"type":"String",
}
};
如果您使用的是 Lodash 库:
myObj.type = _.map(myObj.type)
为了入党——迟到总比不到好。 使用函数式编程处理数组很有趣,接受的答案很好,但稍作调整,您就得到了我认为更清晰的代码。
obj = { type: Object.keys(obj).map(function(key) { return obj[key]; }) };
或者使用更简洁的 ES6 steez
obj = { type: Object.keys(obj).map(key => obj[key]) };
超级干净!
您无需循环即可轻松完成:
// 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))} );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.