如何在对象中将id更改为value

时间:2017-03-13 10:14:25

标签: javascript arrays object

有一个我从服务器收到的对象。在那看起来

enter image description here 我需要改变所有" id"命名"价值" 尝试解析为JSON更改它并转换为数组,但结果非常糟糕

public IEnumerable<TeamDto> GetTeam()
{
   var team = _teamRepository.GetAllTeams();

   if (team != null)
   {
       foreach (var t in team.ToList())
       {
           yield return Mapper.Map<TeamDto>(t);
       }
   }

   yield break;
}

结果我需要这样

public IEnumerable<ListAllTeams_Result> GetAllTeams()
{
    using (var mcrContext = new MCREntities())
    {
        return (from team in mcrContext.ListAllTeams("")
                select new ListAllTeams_Result
                        {
                            TeamID = team.TeamID,
                            TeamDescription = team.TeamDescription,
                            CountryCode = team.CountryCode,
                            CreatedBy = team.CreatedBy,
                            CreatedDate = team.CreatedDate,
                            ModifiedBy = team.ModifiedBy,
                            ModifiedDate = team.ModifiedDate
                        });
    }
}

3 个答案:

答案 0 :(得分:2)

您可以使用Array#map()

&#13;
&#13;
var body = [{
  id: 1,
  name: "school_test_1"
}, {
  id: 2,
  name: "school_test_2"
}];

var options = body.map((x) => ({value:x.id,label:x.name}));

console.log(options);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以迭代数组ach使用旧值分配新属性并删除该属性。

&#13;
&#13;
var options = [{ name: 'one', label: 'One' }, { name: 'two', label: 'Two' }];

options.forEach(function (o) {
    o.value = o.name;
    delete o.name;
});

console.log(options);
&#13;
&#13;
&#13;

答案 2 :(得分:-1)

你可以用lodash这样做:

var myData= [{
      id: 1,
      name: "school_test_1"
    }, {
      id: 2,
      name: "school_test_2"
    }]

var changeLabel= {
  id: 'value',
  name: 'label'
};


var newArray = _.map(myData ,function(obj) {
  return _.mapKeys(obj, function(value, key) {
    return changeLabel[key];
  });
});