微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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)

在这里插入图片描述

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐