将带有对象的Array转换为数组Jquery

时间:2014-09-26 22:09:02

标签: jquery each

我有这个数组

var Obj = 
 [{
            "id": 1,
            "name": "John",
            "score": 4300,
            "active": 1,
        }];

我想将其转换为此

var dataSet = [
    ['1','John','4300','1']
];

我已经尝试了很多简单的jquery但没有运气,如果你觉得它很简单,那么我就是JS的新东西

3 个答案:

答案 0 :(得分:1)

没有涉及jQuery。 jQuery用于处理文档对象。

这是一个解决方案,它按给定的示例顺序排列项目,并将所有值转换为字符串:

function convert(objectList) {
  return objectList.map(function(x) {
    return [""+x.id, ""+x.name, ""+x.score, ""+x.active];
  });
}

var Obj = [
  {
    "id": 1,
    "name": "John",
    "score": 4300,
    "active": 1,
  }
];
console.log( convert(Obj) );

答案 1 :(得分:1)

如果您正在查找值而不考虑键,则可以使用for in语法:

var dataSet = Obj.map(function(x) { 
    var result = []; 
    for (key in x) {
        result.push((x[key]||"").toString());
    }
    return result; 
});

看起来array.map在IE8及更低版本中不起作用,因此如果您需要旧的浏览器兼容性,jQuery.map是一个类似的选择。

答案 2 :(得分:0)

假设您有一个对象数组,以下代码应该给出您想要的结果。

var JsonObj = 
[{
            "id": 1,
            "name": "John",
            "score": 4300,
            "active": 1,
        }];
var dataSet = [];

for(var i=0; i<JsonObj.length; i++){

  var innerDataSet = []
  for(prop in JsonObj[i]){
    innerDataSet.push(""+JsonObj[i][prop]);
  }

  dataSet.push(innerDataSet);
}

如果您尝试转换为JSON或返回,请查看JSON.stringify(text)JSON.parse(text)