这是什么语法和明确的含义

时间:2017-08-14 09:48:44

标签: javascript ecmascript-6

我在教程中遇到过这种语法。有人说它不是ES6语法。它是一个减少功能。 我需要一个明确的解释。这些parentethes发生了什么?

{...curr, ...acc}

完整代码..

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

1 个答案:

答案 0 :(得分:-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];