展开运算符(spread)

Posted 前端纸飞机

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了展开运算符(spread)相关的知识,希望对你有一定的参考价值。

三个点(…),将可迭代对象转为用逗号分隔的参数序列。如同rest参数的逆运算。

console.log(...[l, 2,3])
//123
const a = [1,2,3],
b = [4,5,6];
//赋值数组
const c = [...a] // [1,2,3]
//合并数组
const d = [...a,...b] //[l,2,3,4,5,6]
//将一个数组添加到另一个数组的尾部
a.push(...b);
//字符串转为真正的数组
[...'hello'] //['h','e','l','l','o']

结合函数,将数组变为参数序列 

function add(x, y) {
    return x + y;
}
var numbers = [4,38];
add(...numbers) //42

与解构赋值结合 

const [first, ...rest] = [1,2,3,4,5];
first//1
rest//[2,3,4,5]

拓展具有Iterator接口的对象

var s = new Set();
s.add(1);
s.add(2);
var arr= [...s]// [1,2]

function *gen() {
    yield 1;
    yield 2;
    yield 3;
}
var arr= [...gen()]//[1, 2, 3]

var m = new Map();
m.set(1,1)
m.set(2,2)
var arr = [...m] // [[1,1],[2,2]]

以上是关于展开运算符(spread)的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript展开操作符(Spread operator)介绍

Es6之Spread Operater拷贝对象

ES6扩展/收集运算符--spread/rest

如何使用 props 和 spread 运算符从子组件中操作状态?

vuex在页面中以对象展开运算符形式引入报错解决

vuex中使用对象展开运算符