Javascript 创建包含对象的新数组
我希望创建一个包含来自另一个对象的对象的新数组 这是我的尝试:Javascript 创建包含对象的新数组,javascript,arrays,Javascript,Arrays,我希望创建一个包含来自另一个对象的对象的新数组 这是我的尝试: var obj = { a:{}, b:{} } var arr = new Array().concat(obj,[]); 遗憾的是,这将返回如下数组: Array[1] 0: Object a: Object b: Object Array[2] 0: Object a: Object 1: Object b: Object 但是,所需的阵
var obj = {
a:{},
b:{}
}
var arr = new Array().concat(obj,[]);
遗憾的是,这将返回如下数组:
Array[1]
0: Object
a: Object
b: Object
Array[2]
0: Object
a: Object
1: Object
b: Object
但是,所需的阵列应如下所示:
Array[1]
0: Object
a: Object
b: Object
Array[2]
0: Object
a: Object
1: Object
b: Object
如何在不必循环对象的情况下以尽可能短的方式实现这一点?下面是一个没有显式循环的示例:
var r = Object.keys(obj).map(function(key) {
var o = {};
o[key] = this[key];
return o;
}, obj);
您能说明期望的最终结果应该是什么样子吗?您的意思是希望
var arr=[obj.a,obj.b]代码>?问题是你想要[{a:obj.a},{b:obj.b}]
“不必循环对象”--避免代码中显式循环的技术原因是什么?你能解释一下通过将对象转换成数组来解决什么问题吗?这听起来像是个XY问题。