我有一个类似下面的对象。
{
A: { lists: 2, list: [ [Object], [Object] ] },
B: { lists: 2, list: [ [Object], [Object] ] },
C: { lists: 1, list: [ [Object]] }
}
在对对象列表结果进行映射后,如下所示
const list = Object.entries(result).map(([k, v]) => ({[k]: v.lists}));
我得到的结果是
[{"A":2},{"B":2},{"C":1}]
但是我真正想要的是
{A: 2, B: 2, C: 1}
我该如何实现?
映射条目时,将其更改为[k, v.lists]
,然后使用转换为对象Object.fromEntries()
:
const result = { A: { lists: 2 }, B: { lists: 2 }, C: { lists: 1 }};
const list = Object.fromEntries(Object.entries(result).map(([k, v]) => [k, v.lists]));
console.log(list);
使用lodash,您可以将_.mapValues()
其lists
用作属性的值:
const result = { A: { lists: 2 }, B: { lists: 2 }, C: { lists: 1 }};
const list = _.mapValues(result, 'lists');
console.log(list);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.min.js" integrity="sha512-90vH1Z83AJY9DmlWa8WkjkV79yfS2n2Oxhsi2dZbIv0nC4E6m5AbH8Nh156kkM7JePmqD6tcZsfad1ueoaovww==" crossorigin="anonymous"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句