当前位置: 首页 > 工具软件 > Rest.js > 使用案例 >

js中的... Rest参数与Spread语法

徐秋月
2023-12-01

1.使用…复制数组、对象

let arr = [1, 2, 3];
let arrCopy = [...arr];

let obj = { a: 1, b: 2, c: 3 };
let objCopy = { ...obj };

之前使用:Object.assign({}, obj)

2.若 … 出现在函数参数列表的最后,那么它就是 rest 参数,它会把参数列表中剩余的参数收集到一个数组中。
eg:

function sumAll(...args) { // 数组名为 args
  let sum = 0;

  for (let arg of args) sum += arg;

  return sum;
}

3.若 … 出现在函数调用或类似的表达式中,那它就是 spread 语法,它会把一个数组展开为列表。
eg:

let arr = [3, 5, 1];
[...arr]

注.string转array的几种方法:

1.'test'.split('');
2.[...'tset']; //spread 语法
3.Array.from('test');
4.let array = [];
 for(let i of 'test'){
 	array.push(i)
 }  //for...of --ES6语法,可以遍历Array、Set、Map、String、TypedArray、arguments等可迭代对象,可以使用break、continue

Array.from 适用于类数组对象也适用于可迭代对象。
Spread 语法只适用于可迭代对象。
因此,对于将一些“东西”转换为数组的任务,Array.from 往往更通用。

 类似资料: