Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从对象创建新集合的功能方法是什么?_Javascript_Lodash - Fatal编程技术网

Javascript 从对象创建新集合的功能方法是什么?

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

从这个对象创建这个集合的方法是什么。我可以用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 },{ 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}))