我有以下对象:
{English: 4, Math: 5, CompSci: 6}
如何将其转换为对象数组,例如:
[{English: 4}, {Math: 5}, {CompSci: 6}]
无法在任何地方找到答案。谢谢!
答案 0 :(得分:9)
var input = {
English: 4,
Math: 5,
CompSci: 6
};
var op = [];
Object.keys(input).forEach(function(key) {
var obj = {};
obj[key] = input[key];
op.push(obj); //push newly created object in `op`array
});
console.log(op);
答案 1 :(得分:3)
使用更新的JS,您可以使用Object.entries
并映射单个属性。
var object = { English: 4, Math: 5, CompSci: 6 },
array = Object.entries(object).map(([k, v]) => ({ [k]: v }));
console.log(array);
答案 2 :(得分:2)
只需遍历对象中的每个键。
var oldObject = {English: 4, Math: 5, CompSci: 6};
var newArray = [];
// Loop over each key in the object
for (var key in oldObject) {
// Create a temp object
var temp = {};
// Set the key of temp
temp[key] = oldObject[key]
// Push it to the array
newArray.push(temp);
}
console.log(newArray)
答案 3 :(得分:0)
您可以通过<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
<li class="link">Link1
<ul class="nested_menu">
<li>Nested point</li>
</ul>
</li>
<li class="link">Link2
...
</li>
</ul>
直接分配对象,但是如果不是那样,您必须使用{}
引用键值
[]
答案 4 :(得分:-1)
您可以使用JSON.stringify()
,String.prototype.match()
与RegExp
/".*"\:.*(?=,|})/
,String.prototype.split()
与RegExp
/,/
,Array.prototype.join()
一起使用}参数"},{"
,JSON.parse()
var obj = {English: 4, Math: 5, CompSci: 6};
var res = JSON.parse("[{"
+ JSON.stringify(obj)
.match(/".*"\:.*(?=,|})/g)[0]
.split(/,/)
.join("},{")
+ "}]");
console.log(res);