Sha*_*arZ 3 javascript underscore.js lodash
我有一个看起来像这样的对象数组:
var A = [{key:"key1",val:1},{key:"key2",val:2},...,{key:"keyn",val:n}]
Run Code Online (Sandbox Code Playgroud)
我想转换A为一个对象:
{
key1: 1,
key2: 2,
...
keyn: n
}
Run Code Online (Sandbox Code Playgroud)
这个用例从来没有出现过,但我正在考虑做什么mapKeys然后mapValues我觉得有一个更简单的答案.谢谢!
你真的不需要lodash来实现这一目标.只需使用array.reduce()执行此操作即可.请参阅以下代码示例:
function transformArray(arraySrc){
return arraySrc.reduce(function(prev, curr){
prev[curr.key] = curr.val;
return prev;
}, {});
}
transformArray([{key:"key1",val:1},{key:"key2",val:2},{key:"key3",val:3}]);
Run Code Online (Sandbox Code Playgroud)
我可能可以\xe2\x80\x99t找到一种内置方法,但是:
\n\nvar result = _.zipObject(\n _.pluck(A, 'key'),\n _.pluck(A, 'val')\n);\nRun Code Online (Sandbox Code Playgroud)\n