ES6 中 rest 剩余参数介绍(...args)

ES6 中 rest 剩余参数介绍(…args)

简单介绍
  • Rest就是为解决传入的参数数量不一定, rest parameter(Rest 参数) 本身就是数组,数组的相关的方法都可以用。
  • 在这之前,参数我们会读取到 arguments, 但是 arguments 是一个类数组;
1. arguments 类素组对象:
function s() {
  console.log(arguments)
}
s(1, 2, 2, 3)	// [1, 2, 3, callee: ƒ, Symbol(Symbol.iterator): ƒ]

可以在浏览器环境中执行一下:
浏览器控制台中调试
可以看到,这里打印的 arguments 实质上是一个拥有 length 属性的类数组对象。它不能使用数组的方法。

2. 看一个示例(rest 剩余参数):
// 例一:
function f(a, b, ...theArgs) {
  return theArgs;
}
console.log(f(1,2,3))	// [3]
// 例二:
function f(...theArgs) {
  return theArgs;
}
console.log(f(1,2,3))	// [1, 2, 3]

在这里插入图片描述
ES6 新增的 rest 剩余参数,返回的是一个新的数组,数组的每一项是传入的形参。是一个真正的数组,可以使用数组的方法。

3. 昨天看到群里有人提了一个处理数据的问题:

在这里插入图片描述
先来聊聊思路:
总之就是处理数据,得到一个新的数据结构。
可选的方法有:

  1. filter
  2. slice
  3. if else …
  4. 还有你脑海里想的

这里我考虑到了 rest 参数。所以写了一个简单的解决方案:

const segmentation = ((...args) => {
  let start = 0;
  let end = 0;
  return args.map((item) => {
    start = end;
    end += item;
    return {
      list: a.slice(start, end)
    }
  })
})(3, 2, 3)

在这里插入图片描述

最终得到了所需要的结果。
如果在做的各位有其他想法可以一起讨论讨论~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值