Lodash 从集合中创建一个对象
Lodash create an object from a collection
用下面的数组;
var arr = [
{"name": "blah"},
{"version": "v1.0.0"},
...
]
我想用 lodash;
创建以下对象
var obj = {
"name": "blah",
"version": "v1.0.0",
...
}
P.S. 重复并不重要,因为这里不会有。
既然可以在纯 js 中完成,为什么还要使用 lodash?
var arr = [
{
"name": "blah"
},
{
"version": "v1.0.0"
}
]
var obj = arr.reduce(function(acc, val) {
var key = Object.keys(val)[0];
acc[key] = val[key];
return acc;
}, {})
console.log(obj)
这是一个使用普通 JavaScript 的解决方案。
参考文献:
Object.assign
可用于连接Objects({})
.
Array.prototype.reduce
可用于最小化 Array([])
值。
var arr = [{
"name": "blah"
}, {
"version": "v1.0.0"
}];
var obj = arr.reduce(function(o, v) {
return Object.assign(o, v);
}, {});
console.log(obj);
Lodash 实现。
var arr = [{
"name": "name"
}, {
"version": "v1.0.0"
},{
"manager": "manager"
}];
var result = _.reduce(arr, function(object, value) {
return _.assign(object, value);
}, {});
console.log(result);
用下面的数组;
var arr = [
{"name": "blah"},
{"version": "v1.0.0"},
...
]
我想用 lodash;
创建以下对象var obj = {
"name": "blah",
"version": "v1.0.0",
...
}
P.S. 重复并不重要,因为这里不会有。
既然可以在纯 js 中完成,为什么还要使用 lodash?
var arr = [
{
"name": "blah"
},
{
"version": "v1.0.0"
}
]
var obj = arr.reduce(function(acc, val) {
var key = Object.keys(val)[0];
acc[key] = val[key];
return acc;
}, {})
console.log(obj)
这是一个使用普通 JavaScript 的解决方案。
参考文献:
Object.assign
可用于连接Objects({})
.Array.prototype.reduce
可用于最小化Array([])
值。
var arr = [{
"name": "blah"
}, {
"version": "v1.0.0"
}];
var obj = arr.reduce(function(o, v) {
return Object.assign(o, v);
}, {});
console.log(obj);
Lodash 实现。
var arr = [{
"name": "name"
}, {
"version": "v1.0.0"
},{
"manager": "manager"
}];
var result = _.reduce(arr, function(object, value) {
return _.assign(object, value);
}, {});
console.log(result);