1
obj = {'a':['hello', 'hie'], 'b':['World', 'India']}

array = [{'a':'hello','b':'World'}, {'a':'hie','b':'India'}]

使用 JQuery 转换此转换或任何用于此转换的内置方法的最佳方法。

4

2 回答 2

2

试试这个代码,

obj = {'a':['hello', 'hie'], 'b':['World', 'India']}
var key = Object.keys(obj);
array = [];
for (var i = 0; i < obj['a'].length; i++){
  o = {}
  for (k in key){
    o[key[k]] = obj[key[k]][i]
  }
  array.push(o)
}
于 2012-11-28T11:53:29.700 回答
1
var obj = {'a':['hello', 'hie'], 'b':['World', 'India']};

var array = [];
for (var prop in obj)
    for (var i=0; i<obj[prop].length; i++) {
        var o = array[i] || (array[i] = {});
        o[prop] = obj[prop][i];
    }

不需要 jQuery。使用 jQuery,它可能看起来像这样:

var array = [];
$.each(obj, function(prop) {
    $.each(this, function(i) {
        var o = array[i] || (array[i] = {});
        o[prop] = this;
    });
});
  • 速度较慢且可读性较差。不使用。
于 2012-11-28T12:02:55.270 回答