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

将javascript对象转换为不同的格式,javascript,angularjs,loops,object,dictionary,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 我想把上面的对象转换成这个形式 da

请原谅我不知道怎么做。我想我们必须使用映射函数,但我不明白

这是我的对象“数据”

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

有人能告诉我如何做到这一点吗

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

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

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

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

如果这是您的初始数据:

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

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

如果这是您的初始数据:

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

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

如果项目中有下划线:

var keys = _.keys(myObj)
var foo = {
  name: _.pick(myObj, 'name'),
  sex: _.pick(myObj, 'sex'),
  newJoinee:_.pick(myObj, 'new_joinee')
}

_.each(keys, function(key) { console.log(key + ' ' + foo[key].join(', ')) })

如果项目中有下划线:

var keys = _.keys(myObj)
var foo = {
  name: _.pick(myObj, 'name'),
  sex: _.pick(myObj, 'sex'),
  newJoinee:_.pick(myObj, 'new_joinee')
}

_.each(keys, function(key) { console.log(key + ' ' + foo[key].join(', ')) })
结果:

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

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

你想重新格式化对象,还是想在UI上以不同的方式显示它?@Daniel_L-我查看了地图,减少和过滤函数,但没有找到解决方法。@PankajParkar-我需要重新格式化它,以便在ag网格中正确显示。蛮力:只需迭代对象并重新格式化它。你想重新格式化对象,还是想在UI上以不同的方式显示它?@Daniel_L-我检查了地图,减少和过滤函数,但没有找到解决方法。@PankajParkar-我需要重新格式化它,以便在ag网格中正确显示。蛮力:只需迭代对象并重新格式化它。嗨,Zohaib-我在声明数据时出错。forEach不是函数抱歉,我重写了该变量,还忘了在函数定义中添加参数Hi Zohaib-我在声明数据时出错。forEach不是函数抱歉,我重写了该变量,还忘了在函数定义中添加参数