如何使用lodash生成密钥配对对象结果?

时间:2018-05-30 22:00:43

标签: javascript arrays object functional-programming lodash

我有以下数组:

const ids = ["1234", "5678", "0987", "6543"]

我需要一个带有lodash的函数返回:

const result = {"1234": { workId: null }, "5678": { workId: null }, "0987": { workId: null }, "6543": { workId: null }}

使用lodash方法的方法是什么?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

免责声明:lodash对此非常过分。

您可以使用reduce (link to doc) ...或其plain JS equivalent

const ids = ["1234", "5678", "0987", "6543"]
console.log(ids.reduce((acc, key) => Object.assign(acc, { [key]: { workId: null } }), {}));

请注意,我使用ES2015的一项功能动态设置要添加到累加器的新密钥的名称。

答案 1 :(得分:1)

这是使用lodash#invertlodash#mapValues

的lodash解决方案
const result = _(ids)
  .invert()
  .mapValues(() => ({ workId: null }))
  .value();



const ids = ["1234", "5678", "0987", "6543"];

const result = _(ids)
  .invert()
  .mapValues(() => ({ workId: null }))
  .value();
  
console.log(result);

.as-console-wrapper{min-height:100%;top:0}

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
&#13;
&#13;
&#13;