lodash映射来自一个对象的键,并具有对象数组中的值 [英] lodash Mapping Keys from one object with values in array of objects
本文介绍了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屋!
查看全文