将javascript列表转换为字典

时间:2017-01-25 16:09:56

标签: javascript

我试图将javascript列表转换为具有指定键的字典。 我使用以下代码:



let list = ['cat', 'rabbit', 'fish']

list = list.map(x => {
  return ({ animal: x });
})
 
console.log(list);




  

当然这不起作用。   编辑:它实际上是

预期结果:

[
  {
    "animal": "cat"
  },
  {
    "animal": "rabbit"
  },
  {
    "animal": "fish"
  }
]

编辑:

list = list 实际上是问题中的拼写错误 - 它在我的真实代码中是正确的。我没有测试这个片段,因为我认为它不起作用。然后我也混淆了自己并且确实输入了错误的预期结果。我的代码更复杂,发布所有内容都没有意义。作为作品,我认为我的错误必须在其他地方。谢谢您的帮助。

2 个答案:

答案 0 :(得分:8)

  

当然这不起作用。

确实如此(如果我们修复了Let中的拼写错误并且我们假设您想要一个包含三个对象的数组),那么您只是不使用结果:



    let list = ['cat', 'rabbit', 'fish']

//  vvvvvvv
    list = list.map(x => {
      return({animal: x});
    });
    console.log(list);




或者简要介绍一下简洁的箭头功能:



let list = ['cat', 'rabbit', 'fish']

list = list.map(x => ({animal: x}));
console.log(list);




答案 1 :(得分:0)

我会向@ T.J做出帮助。 Crowder的回答:Ecma Script 6(ES6)无法在旧浏览器和Internet Explorer (只是箭头函数=>中呈现,您可以使用下面的代码:



var list = ['cat', 'rabbit', 'fish']

list = list.map(function(x) {
  return ({
    animal: x
  });
});

console.log(list);




如果您保留原始列表,可以使用以下代码:



var list = ['cat', 'rabbit', 'fish']

var result = list.map(function(x) {
  return ({
    animal: x
  });
});

console.log(list);
console.log(result);




ES6中的典型事项是: