我有这样的对象:
{ "aa": "11", "bb" : "22", "cc" : "33" }
{ "aa": "text1", "bb" : "text2", "cc" : "text3" }
我需要合并这些才能成为这个数组
[ ["text1", "11"], ["text2", "22"], ["text3", "33"] ]
有一种简单的方法吗?
答案 0 :(得分:5)
这里有一些JS FP只是为了好玩:
var o1 = { "aa": "11", "bb" : "22", "cc" : "33" },
o2 = { "aa": "text1", "bb" : "text2", "cc" : "text3" };
var values = function(obj) {
return Object.keys(obj).map(function(key) {
return obj[key];
});
};
function zip(arrays) {
return arrays[0].map(function(_,i){
return arrays.map(function(array) {
return array[i];
});
});
}
var zipped = zip([
values(o1),
values(o2)
]);
console.log(zipped);
PS:zip
函数实现借用于https://stackoverflow.com/a/10284006/251311
答案 1 :(得分:3)
var objects = [{
"aa": "11",
"bb": "22",
"cc": "33"
}, {
"aa": "text1",
"bb": "text2",
"cc": "text3"
}];
var result = [];
for (var key in objects[1]) {
result.push([objects[1][key], objects[0][key]]);
}
console.log(result);
# [ [ 'text1', '11' ], [ 'text2', '22' ], [ 'text3', '33' ] ]
或者
console.log(Object.keys(objects[1]).map(function(key) {
return [objects[1][key], objects[0][key]];
}));
# [ [ 'text1', '11' ], [ 'text2', '22' ], [ 'text3', '33' ] ]
如果你有两个不同变量的对象,比如
var o1 = { "aa": "11", "bb" : "22", "cc" : "33" },
o2 = { "aa": "text1", "bb" : "text2", "cc" : "text3" };
然后
console.log(Object.keys(o2).map(function(key) {
return [o2[key], o1[key]];
}));
# [ [ 'text1', '11' ], [ 'text2', '22' ], [ 'text3', '33' ] ]
答案 2 :(得分:1)
更简单的方法可能是:
var a = { "aa": "11", "bb": "22", "cc": "33" };
var b = { "aa": "text1", "bb": "text2", "cc": "text3" };
var c=[];
$.each(a, function (index, value) {
c.push(a[index], b[index]);
});
PS:使用jQuery 。
答案 3 :(得分:0)
人们尝试这个。希望这对你有用。
var x = { "aa": "11", "bb" : "22", "cc" : "33" }
var y = { "aa": "text1", "bb" : "text2", "cc" : "text3" }
var a = [];
var b = [];
for(var k in x){ a.push(k);}
for(var i = 0; i<a.length;i++){
var c = [];
c.push(x[a[i]]);
c.push(y[a[i]]);
b.push(c);
c = [];
}
console.log(b);
谢谢和问候。