扫码关注官方订阅号
ES6中数组方法的扩展看到Array.from,有个...这样的运算符,里面写的是,可以讲某些数据结构转为数组。看完例子表示不太理解。1.某些数据结构指的是哪些?2.可以提供更加容易理解的例子嘛。多谢
认证高级PHP讲师
不知道您有没有接触过后端语言,例如 c#我这里就拿 c# 来举栗子了
c#
这个在 c# 语言中叫做可变参数 就是方法的参数可以是无限个 实际上是个数组 由编译器提供的语法糖 让程序员可以更加方便的传递参数
以下是 c# 示例代码:
public int[] Filter(params int[] arr) { if(arr == null || arr.Length <=0) return arr; return arr.Where(x => x % 2 == 0); }
上面方法定义了一个可变参数的方法 Filter 方法内部是实现寻找整型数组中的所有偶数。在 c# 中为数组参数前加上关键字 params 即表示这个参数为可变参数 (可以传递0 ~ 无限个参数),并要求可变参数必须是这个方法的最后一个参数。
Filter
params
如果不加 params 关键字调用 Filter 方法时必须传递一个整型数组,如:
Filter(new int[] {1, 2, 3 ,4, 5, 6, 7, 8, 9, 0});
使用可变参数可以直接调用:
Filter(); //不传参数默认为null Filter(1, 2, 3 ,4, 5, 6, 7, 8, 9, 0 [, ...]); //将参数的每一项都当作 `int` 对象赋值给 `arr` 数组接收
而 ES6 中的 (...) 也是如此
ES6
let demo = function demo(...values){ console.warn(values.join('\n')); }
调用
demo('start', 1, 3, 5, 7, 9, 'end'); // 输出: // start // 1 // 3 // 5 // 7 // 9 // end // 如不使用 (...) 则需要 demo(['start', 1, 3, 5, 7, 9, 'end']);
举个例子
javascript// arguments对象function test() { var args = [...arguments];//之后args就成了数组了…
第二个例子:调用iteratorvar str=“hello”[...str] // ['h','e','l','l','o']
第三四种情况不举例子了,也可以适用于set结构和对象结构 。具体结果什么样 我认为题主自己试一下比较好
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
不知道您有没有接触过后端语言,例如
c#我这里就拿
c#来举栗子了这个在
c#语言中叫做可变参数 就是方法的参数可以是无限个 实际上是个数组 由编译器提供的语法糖 让程序员可以更加方便的传递参数以下是
c#示例代码:上面方法定义了一个可变参数的方法
Filter方法内部是实现寻找整型数组中的所有偶数。在
c#中为数组参数前加上关键字params即表示这个参数为可变参数 (可以传递0 ~ 无限个参数),并要求可变参数必须是这个方法的最后一个参数。
如果不加
params关键字调用Filter方法时必须传递一个整型数组,如:使用可变参数可以直接调用:
而
ES6中的 (...) 也是如此调用
举个例子
javascript
// arguments对象
function test() {
var args = [...arguments];
//之后args就成了数组了
…
第二个例子:调用iterator
var str=“hello”
[...str] // ['h','e','l','l','o']
第三四种情况不举例子了,也可以适用于set结构和对象结构 。具体结果什么样 我认为题主自己试一下比较好