简体   繁体   English

如何将数组对象中的第一个值检索到Javascript中的新数组中?

[英]How to retrieve first value from Array objects into a new Array in Javascript?

I have a Javascript Array of objects as follows 我有一个对象的Javascript数组,如下所示

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

I want a resulting data as 我想要作为结果的数据

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

] ]

How can I do that in Javascript efficiently ? 如何在Javascript中有效地做到这一点?

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);

If you can use jQuery, then this will work: 如果可以使用jQuery,则可以使用:

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

For pure javascript, this will work: 对于纯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) : '';
}

try 尝试

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)

I have tried. 我努力了。 Its working 它的工作

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);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM