繁体   English   中英

使用 Lodash 将字符串数组转换为对象数组

[英]Convert Array of Strings To Array of Objects using Lodash

在 lodash 中是否有一种简单的方法来解决这个问题:

const sampleSource = [
  "String 1",
  "String 2",
]

得到这个:

[
  {id: "String 1", text: "String 1"},
  {id: "String 2", text: "String 2"},
]

我需要像这样格式化它以传递到第 3 方反应组件。 我玩过 .map 和 .zipObject 一点,但没能把它弄好。

我认为这样的事情应该有效:

_.chain(sampleSource).map(s => ({ id: s, text: s })).value()

但它给了我:

[
  {
    id: ["String 1", "String 2"],
    text: ["String 1", "String 2"],
  }
]

像这样的东西。 添加了链示例。

 const sampleSource = [ "String 1", "String 2", ] let result = _.map(sampleSource, function(item) { return {id: item, text: item}; }); console.log(result); let result2 = _.chain(sampleSource).map(function(item) { return {id: item, text: item}; }); console.log(result2);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>

为此,您不需要 lodash,普通的 JavaScript .map()应该可以工作。

 const sampleSource = [ "String 1", "String 2", ]; const result = sampleSource.map(s => ({id: s, text: s})); console.log(result);

lodash有一个名为keyBy的方法。

你可以像这样使用它

 const sampleSource = [ "String 1", "String 2", ]; const result = _.keyBy(sampleSource); console.log(result);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM