JavaScript 扩展运算符用法实例小结【基于ES6】
作者:longzhoufeng 发布时间:2024-04-22 13:06:03
本文实例讲述了JavaScript 扩展运算符用法。分享给大家供大家参考,具体如下:
扩展运算符格式
扩展运算符格式很简单,就是三个点(…)
重点:需要ES6 语法支持
扩展运算符作用???
扩展运算符允许一个表达式在期望多个参数(用于函数调用)或多个元素(用于数组字面量)或多个变量(用于解构赋值)的位置扩展。
1、将一个数组放入另一个数组中
下面开始通过四个例子来深刻理解扩展运算符
①. 创建一个数组middle
②. 创建第二个包含middle的数组
③. 输出结果
var middle = [3, 4];
var arr = [1, 2, middle, 5, 6];
console.log(arr);
// [1, 2, [3, 4], 5, 6]
在上例中,没有使用扩展运算符。middle作为数组放入另一个数组中
2、如果想让输出结果只有一个数组???
这时候就用到扩展运算符,看下面例子,除了使用扩展运算符其他都与上面例子相同。
var middle = [3, 4];
var arr = [1, 2, ...middle, 5, 6];
console.log(arr);
// [1, 2, 3, 4, 5, 6]
当创建数组arr和使用在middle数组上使用扩展运算符时,不是将middle数组直接插入到arr中,而是将middle数组扩展,然后将元素插入到arr中。
3、复制数组
slice()
是JavaScript数组的方法,作用是复制数组。我们同样可以使用扩展运算符复制数组。
var arr = ['a', 'b', 'c'];
var arr2 = [...arr];
console.log(arr2);
// ['a', 'b', 'c']
arr数组中的元素扩展成为单独元素被分配到arr2中。现在可以随意改变arr2数组,且都不会对源数组arr产生影响
这是因为,arr数组值被扩展后添加到arr2数组中,我们设置arr2等于arr的值,而不是其本身。我们可以关注没有扩展运算符时发生事情,就能理解了。
如果创建数组然后设置另一个数组等于其本身,如下:
var arr = ['a', 'b', 'c'];
var arr2 = arr;
console.log(arr2);
// ['a', 'b', 'c']
现在我们将arr2数组赋值给arr数组,这意味着只要改变arr2,arr数组就会发生变化。
arr2.push('d');
console.log(arr2);
// ['a', 'b', 'c', 'd']
console.log(arr);
// ['a', 'b', 'c', 'd']
4、拼接数组
使用扩展运算符可以代替concat()
来拼接数组。
var arr = ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f'];
arr1 = arr.concat(arr2);
console.log(arr);
// ['a', 'b', 'c', 'd', 'e', 'f']
使用扩展运算符
var arr = ['a', 'b', 'c'];
var arr2 = ['d', 'e', 'f'];
arr = [...arr, ...arr2];
console.log(arr);
// ['a', 'b', 'c', 'd', 'e', 'f']
5、Math
也可以使用math函数连同扩展运算符。如这个例子中,将使用Math.max()
Math.max()将返回一组数最大值。
Math.max();
// -Infinity
Math.max(1, 2, 3);
// 3
Math.max(100, 3, 4);
// 100
在没有扩展运算符,在数组上使用Math.max()
最容易方法就是使用.apply()
。
var arr = [2, 4, 8, 6, 0];
function max(arr) {
return Math.max.apply(null, arr);
}
console.log(max(arr));
// 8
现在看看使用扩展运算符做同样事情。只需要两行代码就可以做到同样效果。
var arr = [2, 4, 8, 6, 0];
var max = Math.max(...arr);
console.log(max);
// 8
6、字符串转数组
使用扩展运算符将字符串转换为数组。
var str = "hello";
var chars = [...str];
console.log(chars);
// ['h', 'e',' l',' l', 'o']
希望本文所述对大家JavaScript程序设计有所帮助。
来源:https://blog.csdn.net/longzhoufeng/article/details/72829231


猜你喜欢
- 学习Python数据分析挖掘实战一书时,在数据预处理阶段,有一节要使用拉格朗日插值法对缺失值补充,代码如下:#-*- coding:utf-
- 1.加载数据库,数据库的配置不能写死在seting.py文件中,下面的方式是读取另外一个文件,配置数据库:config = '
- 前言Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypt
- 发邮件是一种很常见的操作,本篇主要介绍一下如何用python实现自动发件。import smtplibfrom email.mime.tex
- 本文实例为大家分享了vue实现导航栏下拉菜单的具体代码,供大家参考,具体内容如下先看效果:下拉菜单铺满全屏<div class=&qu
- 本文实例讲述了c#操作附加数据库的方法。分享给大家供大家参考。具体如下:/// <summary>/// 附加数据库/// &l
- 一、创建测试项目1、新建GitHub仓库在GitHub上面新创建一个仓库,用来演示分支管理,如下图所示:点击“Creat
- newstudent.asp<script LANGUAGE=″vbscript″ RUNAT=″Server″&
- 搭建ftp服务器server端# -*- coding:utf-8 -*-from pyftpdlib.authorizers import
- python生成遍历暴力破解密码(这里已遍历暴力破解rar为例,只提供生成密码以及遍历密码)这个也就是提供一个思路,需求是这样的,我XX的闺
- 译文原文:http://blog.benhuoer.com/2009/04/10-simple-and-impressive-design-
- python变量1. 定义变量 (创建变量)变量就是一种用来保存数据的容器,使用变量就是使用变量中保存的数据语法:变量名 = 数据1.变量名
- 1 算术运算add(other)比如进行数学运算加上具体的一个数字data['open'].add(1)2018-02-27
- 我相信一定有很多的人跟我一样,经常忘记Python安装的路径,每当用到的时候,最笨的办法就是在全局电脑里,直接查找Python,这样是肯定能
- django-pagination这是一个python包,来自github上的一个项目,很容易用。不过这是一个懒人工具,好吧(工具理性)。不
- innerHTML,outerHTML innerHTML检索或设置标签内的内容;outerHTML检索或设置整个标签的内容(包含标签)。&
- 踩了很多坑,记录一下这次试验,本次测试环境:Linux centos7 64位。pyenv是一个python版本管理工具,它能够进行全局的p
- 本文实例讲述了Python实现读取字符串按列分配后按行输出。分享给大家供大家参考,具体如下:问题:输入一个字符串和一个数字,数字代表分为几行
- 刚刚有人问我二年前写的那个小三角的效果还能作出什么样的效果,我正在看电视,画面上出现了这样一个小灯笼,于是,我就说,可以作个小灯笼玩玩。于是
- String含义:String是一个封装char[]数组的对象,字符串不可变String str = “abc&