【发布时间】:2018-01-22 02:20:30
【问题描述】:
我现在有以下代码
var _ = require('underscore');
var raw =[
{
key :"name",value:"henry"
},
{
key :"age",value:"old"
},
{
key :"food",value:"matooke"
},
{
key :"kids",value:"Acacia"
},
{
key :"garbageA",value:"kasailoA"
},
{
key :"garbageB",value:"kasasiroB"
},
]
const endShape = _(raw)
.filter(({key}) =>!/garbage/.test(key))
.map(({key,value})=>({[key]:value}))
.reduce((acc,curr)=>({...curr, ...acc}));
console.log(endShape);
代码运行良好,我正在学习教程。 我了解 .map() 方法。 虽然我没能清楚地解释什么
.reduce((acc,curr)=>({...curr, ...acc}));
正在做。这个正确的结果是怎么得出的?
{ kids: 'Acacia', food: 'matooke', age: 'old', name: 'henry' }
【问题讨论】:
-
您所拥有的是 ES6 中的语法错误。如果它对您“有效”,您似乎正在使用an experimental transpiler
-
哪个语法错误?请解释清楚
-
{...curr, ...acc}不是有效的 ES6。 -
让我研究一下
-
添加到 JavaScript 的新功能将通过不同阶段进行讨论和测试:请参阅 2ality.com/2015/11/tc39-process.html
标签: javascript lambda ecmascript-6