【问题标题】:Lodash merge array with dictionary object key valuesLodash 将数组与字典对象键值合并
【发布时间】:2018-09-18 04:02:34
【问题描述】:

我有一个数组

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


    【解决方案1】:

    由于您要求使用lodash,因此您可以使用_.map

    演示

    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>

    【讨论】:

      【解决方案2】:

      使用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);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-04
        • 1970-01-01
        • 2019-05-07
        • 2015-07-07
        • 1970-01-01
        • 2016-06-12
        • 1970-01-01
        相关资源
        最近更新 更多