Javascript 从对象创建新集合的功能方法是什么?
从这个对象创建这个集合的方法是什么。我可以用lodash吗Javascript 从对象创建新集合的功能方法是什么?,javascript,lodash,Javascript,Lodash,从这个对象创建这个集合的方法是什么。我可以用lodash吗 var obj = {Express: 2, Long_Haul: 1, Short_Haul: 1} let collection = [] Object.keys(obj).forEach(key => collection.push({method: key, quantity: obj[key]})) // output: // [ { method: 'Express', quantity: 2 },{ meth
var obj = {Express: 2, Long_Haul: 1, Short_Haul: 1}
let collection = []
Object.keys(obj).forEach(key => collection.push({method: key, quantity:
obj[key]}))
// output:
// [ { method: 'Express', quantity: 2 },{ method: 'Long_Haul', quantity: 1 },{ method: 'Short_Haul', quantity: 1 } ]
使用
.map
将对象的.entries
数组转换为具有所需属性名称的对象数组:
var obj={Express:2,Long\u-Haul:1,Short\u-Haul:1}
const collection=Object.entries(obj)
.map(([method,quantity])=>({method,quantity}));
控制台日志(收集)代码>您可以使用js中的内置函数,如果您使用的js引擎没有提供这些函数,您可以使用lodash
let obj={Express:2,Long\u-Haul:1,Short\u-Haul:1}
let collection=.map(.toPairs(obj),function(arr){
返回{方法:arr[0],数量:arr[1]};
});
控制台日志(收集)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}
在lodash中有一个解决方案,它使用了一个链,并部分应用了一个
var obj={Express:2,Long\u-Haul:1,Short\u-Haul:1};
const collection=wj(obj).toPairs()
.map(u.partial(u.zipObject,['method','quantity']))
.value();
控制台日志(收集)代码>
。作为控制台包装{最小高度:100%;顶部:0}
以下是使用lodash的解决方案
const obj = {Express: 2, Long_Haul: 1, Short_Haul: 1}
const collection = _.map(obj, (value, key) => ({method: key, quantity: value}))
map函数将使用键调用iteratee。使用一个。
功能将完成任务
..map(集合,[iteratee=..identity])
通过迭代运行集合中的每个元素来创建一个值数组。使用三个参数调用iteratee:
(值、索引|键、集合)
这个答案真的让解构大放异彩。
const obj = {Express: 2, Long_Haul: 1, Short_Haul: 1}
const collection = _.map(obj, (value, key) => ({method: key, quantity: value}))