2017-08-14 62 views
0

我在教程中讨论了这个语法。有人说它不是ES6语法。它在减少功能。 我需要一个清晰的解释。这些事情发生了什么?这个语法是什么,明确的含义

{...curr, ...acc} 

完整的代码..

const endShape = _(raw) 
.filter(({key}) =>!/garbage/.test(key)) 
.map(({key,value})=>({[key]:value})) 
.reduce((acc,curr)=>({...curr, ...acc})); 
console.log(endShape); 
+0

我发现使用有用的东西像巴贝尔的在线REPL理解一些最有趣采用新的JS sytntax的 - https://babeljs.io/repl /#?巴比利=假评估=真lineWrap =假预置= ENV%2Cstage-0的目标=浏览器= BUILTINS =假调试=假实验值=真松=假规格=假code_lz = MYewdgzgLgBApmAJgZQBYEMAOcYF4YD6AFAE7oDuAlAFAB0AZgJYA2UcJRRA3gNZwCeAX0p4AfAEIA9AHN0JAEbppcSbTbQiffpRq0Atlk68BAGgBu6ZgFc4w3KO4BtLQF0AXBeu2ddEnERWwHCc 6MDAJsBWJCSU9ty0CZHRJjAJtKHAwpQA3NSgkCDMcLTMINJECCgY2DlAA –

回答

-1

传播操作速记 传播经营者,在ES6介绍,有几个用例,使JavaScript代码更高效和有趣的使用。它可以用来替换某些数组函数。扩散算子只是一系列三个点。

手写

const odd = [1, 3, 5]; 
const nums = [2 ,4 , 6].concat(odd); 
// cloning arrays 
const arr = [1, 2, 3, 4]; 
const arr2 = arr.slice(); 

速记

// joining arrays 
const odd = [1, 3, 5 ]; 
const nums = [2 ,4 , 6, ...odd]; 
console.log(nums); // [ 2, 4, 6, 1, 3, 5 ] 

// cloning arrays 
const arr = [1, 2, 3, 4]; 
const arr2 = [...arr];