如何在Javascript中从Array对象中检索第一个值到新数组?

时间:2014-10-09 05:49:43

标签: javascript jquery

我有一个Javascript对象数组,如下所示

var data = [
  {
    id: 1,
    date : '1/1/2011',
    todo : 'Maths'
  },
  {
    id: 2,
    date : '1/1/2012',
    todo : 'Science'
  } ................. and soo on
];

我希望结果数据为

var newArray = [
 ['1/1/2011', '1/1/2012'],
[
 {
  id:1,
  todo: 'Maths'
 },
{
  id:2,
  todo: 'Science'
 }
]

如何有效地在Javascript中实现这一点?

4 个答案:

答案 0 :(得分:0)

function prepare(data) {
 var result = [ [], [] ];

 for(var i = 0; i < data.length; i++) {
  result[0][i] = data[i].date;
  result[1][i] = { id: data[i].id, todo: data[i].todo };
 }

 return result;

}

var newArray = prepare(data);

答案 1 :(得分:0)

如果你可以使用jQuery,那么这将有效:

var newArray = [[], data];    
$.each(data, function(i,v) {newArray[0].push(v.date);delete v.date;});

对于纯JavaScript,这将起作用:

var newArray = [[], data];    
for (var i=0; i<=data.length; i++) {
  typeof data[i]==="object" ? (newArray[0].push(data[i].date), delete data[i].date) : '';
}

答案 2 :(得分:0)

var data = [{
    id: 1,
    date: '1/1/2011',
    todo: 'Maths'
}, {
    id: 2,
    date: '1/1/2012',
    todo: 'Science'
}];

var array = [];

data.forEach(function (item) {
    array.push(item.date);
    delete item.date;
})

data.unshift(array)

console.log(data)

答案 3 :(得分:0)

我试过了。它的工作

var data = [
{
    id: 1,
    date : '1/1/2011',
    todo : 'Maths'
},
{
    id: 2,
    date : '1/1/2012',
    todo : 'Science'
}];
var newArray=formatStr(data);
alert(JSON.stringify(newArray));

function formatStr(data){
arr1=[];
var arr2=[];
for (var i in data) {
    var obj={};
    obj["id"]=data[i].id;
    obj["todo"]=data[i].todo;
    arr1.push(data[i].date);
    arr2.push(obj);
}
var result=[arr1,arr2];
return (result);
}