lodash映射来自一个对象的键,并具有对象数组中的值 [英] lodash Mapping Keys from one object with values in array of objects

查看:62
本文介绍了lodash映射来自一个对象的键,并具有对象数组中的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下对象:

var kmap={
    key1:"useless",
    key2:"useless",
    key3:"useless"
};

我需要使用此对象数组的值映射其键:

var incoming=[
    {value:"asd"},
    {value:"qwe"},
    {value:"zxc"}
];

结果:

{
    key1:"asd",
    key2:"qwe",
    key3:"zxc",
}

这是我现在的操作方式:

var result={};

var keys=Object.keys(kmap);

for(var i=0;i<incoming.length;i++)
{
    result[keys[i]]=incoming[i].value;
}

如何使用 lodash 下划线进行操作.内置方法会更好,不想对 for 循环进行操作.

How do I do it using lodash or underscore. Built-in method would be even better, dont want to do for loop.

推荐答案

以下是使用lodash的解决方案:

Here's a solution using lodash:

var result = _.zipObject(_.keys(kmap), _.map(incoming, 'value'))

zipObject 创建一个给定键数组的对象和一组值.我们从 kmap 获取的键和值从 incoming 拔出.

zipObject creates an object given an array of keys and an array of values. The keys we get from kmap and the values are plucked from incoming.

var kmap={
    key1:"useless",
    key2:"useless",
    key3:"useless"
};

var incoming=[
    {value:"asd"},
    {value:"qwe"},
    {value:"zxc"}
];

var result = _.zipObject(_.keys(kmap), _.map(incoming, 'value'))

document.getElementById('result').textContent = JSON.stringify(result);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>

<p>
  <pre id="result"></pre>
</p>

这篇关于lodash映射来自一个对象的键,并具有对象数组中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆