Lodash合并数组与字典对象键值

问题描述 投票:0回答:2

我有一个阵列

var keys = ['Name','Id'];

我想与下面的字典对象合并

var projects = {
 "project1": "11111",
 "project2": "22222",
 "project3": "33333",
 };

产生下面的输出

output =
[
{ Name:"project1", Id:"11111"},
{ Name:"project2", Id:"22222"},
{ Name:"project3", Id:"33333"},
]

我试过用

console.log(_.zipObject(keys, projects));

但这失败了

我怎么用lodash这样做?

javascript arrays dictionary merge lodash
2个回答
0
投票

由于您要求专门使用lodash,您可以使用_map

DEMO

var projects = {
 "project1": "11111",
 "project2": "22222",
 "project3": "33333",
 };
var result = _.map(projects, function(value, prop) {
  return { Name: prop, id: value };
});

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.2/lodash.min.js"></script>

0
投票

使用Object.keys()Array.map()创建对象数组。您可以使用computed property names指定密钥名称:

var keys = ['Name','Id'];

var projects = {
 "project1": "11111",
 "project2": "22222",
 "project3": "33333",
};

var result = Object.keys(projects)
  .map(function(k) {
    return {
      [keys[0]]: k,
      [keys[1]]: projects[k]
    };
  });

console.log(result);
© www.soinside.com 2019 - 2024. All rights reserved.