如何在javascript中将键值对转换为对象

Bin*_*ose -2 javascript jquery

我有一个像这样的对象数组:

[{"key":"fruit","value":"apple"},{"key":"color","value":"red"},{"key":"location","value":"garden"}]
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为以下格式:

[{"fruit":"apple"},{"color":"red"},{"location":"garden"}]
Run Code Online (Sandbox Code Playgroud)

这怎么可能使用JavaScript?

Ale*_* T. 14

您可以使用 .map

var data = [
  {"key":"fruit","value":"apple"},
  {"key":"color","value":"red"},
  {"key":"location","value":"garden"}
];

var result = data.map(function (e) {
  var element = {};
  element[e.key] = e.value;
  
  return element;
});

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

如果你使用ES2015你也可以这样做

var result = data.map((e) => {
   return {[e.key]: e.value};
});
Run Code Online (Sandbox Code Playgroud)

Example


Pau*_* S. 5

使用箭头函数,将数据称为 arr

arr.map(e => {
    var o = {};
    o[e.key] = e.value;
    return o;
});
Run Code Online (Sandbox Code Playgroud)

这会生成一个新的Array并且不会修改原来的

它可以简化为一行

arr.map(e => ({[e.key]: e.value}));
Run Code Online (Sandbox Code Playgroud)

如果你还不能假设箭头函数支持,你会写这个

arr.map(function (e) {
    var o = {};
    o[e.key] = e.value;
    return o;
});
Run Code Online (Sandbox Code Playgroud)