javascript - (...)扩展运算符怎么样去理解?

查看:86
本文介绍了javascript - (...)扩展运算符怎么样去理解?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

ES6中数组方法的扩展看到Array.from,有个...这样的运算符,里面写的是,可以讲某些数据结构转为数组。看完例子表示不太理解。1.某些数据结构指的是哪些?2.可以提供更加容易理解的例子嘛。多谢

解决方案

不知道您有没有接触过后端语言,例如 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 ~ 无限个参数),
并要求可变参数必须是这个方法的最后一个参数。

如果不加 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 中的 (...) 也是如此

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 - (...)扩展运算符怎么样去理解?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆