Javascript 更改对象的键/值

Javascript 更改对象的键/值,javascript,Javascript,如果我有这样的结果: result = [ { '0': 'grade', A: 'name', b1: 'number' }, { '1': 'grade', B: 'name', b2: 'number' }, { '2': 'grade', C: 'name', b3: 'number' } ]; 我如何制作: result = [ { A: '0', b1: '0' }, { B: '1', b2: '1' }, { C: '2'

如果我有这样的结果:

result =  [

    { '0': 'grade', A: 'name', b1: 'number' },
    { '1': 'grade', B: 'name', b2: 'number' },
    { '2': 'grade', C: 'name', b3: 'number' }
];
我如何制作:

result =  [

    { A: '0', b1: '0' },
    { B: '1', b2: '1' },
    { C: '2', b3: '2' }
];

我想通过类似的等级,而不是名称和编号。

对于ES6,您可以使用for循环和Objects。此任务的键:


假设b3:“1”部分是一个打字错误。。。以下几点应该行得通

变量输入=[ {'0':'grade',A:'name',b1:'number'}, {'1':'grade',B:'name',b2:'number'}, {'2':'grade',C:'name',b3:'number'} ]; 函数反转mapobj{ var newObj={}; var keys=Object.keysobj;
forvar i=0;i无法保证对象中键的顺序。这意味着简单地获取一个键数组并在其中循环或通过索引访问它们将不起作用。您可以通过检测数字键和非数字键来完成这项工作,如下所示:

result =  [
    { '0': 'grade', A: 'name', b1: 'number' },
    { '1': 'grade', B: 'name', b2: 'number' },
    { '2': 'grade', C: 'name', b3: 'number' }
];

result.forEach(item => {
  var keys = Object.keys(item);
  var numericKey = keys.find(key => !isNaN(key));
  var nonNumericKeys = keys.filter(key => isNaN(key));

  nonNumericKeys.forEach(nonNumKey => item[nonNumKey] = numericKey);
  delete item[numericKey];
});

我猜这是一个输入错误?你能发布你已经尝试解决这个问题的内容吗?不确定依赖对象中属性的顺序是否是个好主意…@Rayon有趣的阅读对象顺序:对象中键的顺序没有保证。这可能无法按预期工作。请注意:我正在尝试在没有=>的情况下运行它,使用keys.find functionkey{但是我不能让它工作!一旦我为键写了上面的内容。查找,它就不能像预期的那样工作。你能更新一下吗?谢谢。是的,我想这可能是因为箭头函数作为一行时有隐式返回。没问题。
result =  [
    { '0': 'grade', A: 'name', b1: 'number' },
    { '1': 'grade', B: 'name', b2: 'number' },
    { '2': 'grade', C: 'name', b3: 'number' }
];

result.forEach(item => {
  var keys = Object.keys(item);
  var numericKey = keys.find(key => !isNaN(key));
  var nonNumericKeys = keys.filter(key => isNaN(key));

  nonNumericKeys.forEach(nonNumKey => item[nonNumKey] = numericKey);
  delete item[numericKey];
});