在JavaScript中替换数组键的最佳方法是什么?

Sen*_*urn 1 javascript arrays

这是我的阵列:

data = [{"src": 'a'},
        {'src': 'b'},
        {'src': 'c'}];
Run Code Online (Sandbox Code Playgroud)

但我想改变这样的关键:

data = [{"letter": 'a'},
        {'letter': 'b'},
        {'letter': 'c'}];
Run Code Online (Sandbox Code Playgroud)

gur*_*372 7

使用 map

var output = data.map( s => ({letter:s.src}) );
Run Code Online (Sandbox Code Playgroud)

演示

var data = [{
    "src": 'a'
  },
  {
    'src': 'b'
  },
  {
    'src': 'c'
  }
];

console.log(data.map(s => ({
  letter: s.src
})));
Run Code Online (Sandbox Code Playgroud)

但是如果有多个其他键,你只想改变src它

var output = data.map( s => {
  if ( s.hasOwnProperty("src") )
  {
     s.letter = s.src;
     delete s.src;   
  }
  return s;
})
Run Code Online (Sandbox Code Playgroud)

演示

var data = [{
    "src": 'a'
  },
  {
    'src': 'b'
  },
  {
    'src2': 'c'
  }
];

var output = data.map(s => {
  if (s.hasOwnProperty("src")) {
    s.letter = s.src;
    delete s.src;
  }
  return s;
})

console.log(output);
Run Code Online (Sandbox Code Playgroud)


dlo*_*eda 5

最简单的方法是使用map方法.看看文档

data.map(function(item) {
    return { letter: item.src };
})
Run Code Online (Sandbox Code Playgroud)


Ji *_*aSH 5

使用array.map

data.map(function(d) { return { letter: d.src } })
Run Code Online (Sandbox Code Playgroud)