将 lodash _.mapValues 转换为 ES6 有哪些不同的方法。
代码:
var fruits= {
'apple': { 'name': 'apple', 'number': 5},
'orange': { 'name': 'orange', 'number': 10 }
};
_.mapValues(fruits, 'number');
输出:
{ 'apple': 5, 'orange': 10 }
最佳答案
将对象的
到另一个对象中,只从值中提取entries
减少number
:
var fruits= {
'apple': { 'name': 'apple', 'number': 5},
'orange': { 'name': 'orange', 'number': 10 }
};
console.log(Object.entries(fruits)
.reduce((a, [key, { number }]) => {
a[key] = number;
return a;
}, {}
));
在较新的环境中,您可以通过使用 Object.fromEntries
来映射到键值对数组的数组,从而使其更加优雅:
var fruits= {
'apple': { 'name': 'apple', 'number': 5},
'orange': { 'name': 'orange', 'number': 10 }
};
console.log(Object.fromEntries(
Object.entries(fruits).map(([key, { number }]) => [key, number])
));
关于javascript - ES6 相当于 lodash _.mapValues,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51393988/