将javascript对象转换为不同的格式

时间:2016-01-28 19:49:14

标签: javascript angularjs loops object dictionary

请原谅我不知道该怎么做。我想我们必须使用地图功能,但我没有得到它。

这是我的对象'数据'。

data
 [0]:
    name: 'Alex'
    sex: 'Male'
    new_joinee: false
 [1]:
    name: 'Anna'
    sex: 'female'
    new_joinee: true
 [2]:
    name: 'lester'
    sex: 'Male'
    new_joinee: true

我想将上述对象转换为此格式

data
name: 'Alex', 'Anna', 'lester'
sex:  'Male', 'Female','Male'
new_joinee: false,true,true

有人可以让我知道如何实现这一目标。

4 个答案:

答案 0 :(得分:2)

//Input data
var data = [
  {name: 'Alex', sex: 'Male', new_joinee: false}, 
  {name: 'Anna', sex: 'female', new_joinee: true}, 
  {name: 'lester', sex: 'Male', new_joinee: true}
];

//Initialize the output object
out = {};
for(var k in data[0]) {
   out[k] = [];
}

//Collect data from all input objects
data.forEach(function(item){
   for(var k in item) {
     out[k].push(item[k]);
   }
});

结果:

out == 
{ name: [ 'Alex', 'Anna', 'lester' ],
  sex: [ 'Male', 'female', 'Male' ],
  new_joinee: [ false, true, true ] }

答案 1 :(得分:1)

我假设你的数据是一个对象数组

var data = parse(data)

function parse(data){
  var parsedData = { name: '', sex: '', new_joinee: ''};
  data.forEach(function(item){
    parsedData.names += item.name;
    parsedData.sex += item.sex;
    parsedData.new_joinee += item.new_joinee;

   });
 return parsedData;
}

答案 2 :(得分:1)

如果这是您的初始数据:

ObjectId

您可以通过以下方式将数据转换为其他内容:

var initialData = 
[
    {name: 'Alex', sex: 'Male', new_joinee: false}, 
    {name: 'Anna', sex: 'female', new_joinee: true}, 
    {name: 'lester', sex: 'Male', new_joinee: true}
];

<强>结果

var transformed = {
    name: [],
    sex: [],
    new_joinee: []
};

initialData.forEach(function (element) {
    transformed.name.push(element.name);
    transformed.sex.push(element.sex);
    transformed.new_joinee.push(element.new_joinee);
});

答案 3 :(得分:1)

如果您的项目中有下划线:

var video = document.getElementById("test_video_player");
video.onloadedmetadata = function() {
    // do your stuff with duration, etc.
};