JavaScript中使用Spread运算符的八种方法总结


Posted in Javascript onJune 18, 2020

Spread运算符

允许从 iterable 表达式(如另一个数组文本)初始化部分数组文本,或允许表达式扩展到多个参数(在函数调用中)。

语法

var array = [[arg0ToN ,] ...iterable [, arg0ToN]]
func([args ,] ...iterable [, args | ...iterable])

参数

iterable

必需。 迭代对象。

arg0ToN

可选。 数组文本的一个或多个元素。

args

可选。 函数的一个或多个参数。

本文将带大家了解如何在JavaScript中使用Spread(延展操作)运算符。

ES6中引入了延展操作运算符(...)。

延展操作运算符将可迭代的对象扩展为其单独的元素,可迭代对象是可以使用 for 循环进行循环的任何对象。

可迭代的示例:Array,String,Map,Set,DOM节点。

1.在log中使用延展操作运算符

你可以在 console.log 中对可迭代对象使用延展操作操作符

let fruits = ['?', '?', '?', '?'];
console.log(...fruits); //? ? ? ?

2.用延展操作运算符复制数组

let fruits = ['?', '?', '?', '?'];
let fruitsCopy = [ ...fruits ];
console.log(...fruitsCopy); //? ? ? ?

复制对象

let user = {name : "John", age : 20 }
let userCopy = {...user}

延展操作运算符不执行深度复制。

3.延展操作运算符合并

let fruits = ['?', '?', '?', '?'];
let vegetables = ['?', '?', '?'];
let fruitsAndVeg = [...fruits, ...vegetables]

合并对象

合并对象时,如果已经存在某个键,则将其替换为具有相同键的最后一个对象。

let user1 = {name : "John", age : 20 };
let user2 = {name : "Ram", salary: '20K' };
let userCopy = {...user1, ...user2};
userCopy ; // {name : "Ram", age :20 , salary : '20K'};

4.延展操作运算符作为参数传递

function sum(a, b) {
 return a+b;
}
let num = [1,2];
sum(...num); // 3

与 math 函数一起使用

let num = [5,9,3,5,7];
Math.min(...num);
Math.max(...num);

5.延展操作运算符在解构变量中

let [melon, ...fruits ] = ['?', '?', '?', '?'];
melon; //?
fruits; // [ '?', '?', '?']

解构对象

let user = {name : "Ram", age: 20, salary: '20K', job : "Tester" };
let { name, age, ...details } = user;
name; // Ram
age; // 20
details; // {salary: '20K', job : 'Tester'};

6.将NodeList对象转换为数组

NodeList类似于数组,但是没有 Array 的所有方法,例如 forEach,map,filter 等。

let nodeList = document.querySelectorAll('.class')
var nodeArray = [...nodeList]

7.将字符串转换为字符

字符串也是可迭代的对象,因此我们也可以使用 ... 来字符串。

let name = "Ram";
let chars = [...name]; // ["R", "a", "m"]

8.从数组中删除重复项

let num = [1, 3, 1, 3, 3, 1];
let uniqueNum = [...new Set(num)];
uniqueNum; //[ 1, 3 ]

总结

到此这篇关于JavaScript中使用Spread运算符的八种方法就介绍到这了,更多相关JavaScript使用Spread运算符内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js常见表单应用技巧
Jan 09 Javascript
浅谈jquery.fn.extend与jquery.extend区别
Jul 13 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
Aug 12 Javascript
Angularjs中UI Router的使用方法
May 14 Javascript
浅谈js构造函数的方法与原型prototype
Jul 04 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
Jul 12 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
Feb 08 Javascript
vue+elementUI实现图片上传功能
Aug 20 Javascript
layui实现给某一列加点击事件
Oct 26 Javascript
微信小程序tabBar设置实例解析
Nov 14 Javascript
原生javascript制作的拼图游戏实现方法详解
Feb 23 Javascript
vue中el-input绑定键盘按键(按键修饰符)
Jul 22 Javascript
通过实例了解JS执行上下文运行原理
Jun 17 #Javascript
从0搭建vue-cli4脚手架
Jun 17 #Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
Jun 17 #Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
Jun 17 #Javascript
vue移动端的左右滑动事件详解
Jun 17 #Javascript
详解JavaScript中的Object.is()与"==="运算符总结
Jun 17 #Javascript
vue-iview动态新增和删除的方法
Jun 17 #Javascript
You might like
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
php处理带有中文URL的方法
2016/07/11 PHP
php 二维数组快速排序算法的实现代码
2017/10/17 PHP
PHP children()函数讲解
2019/02/03 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
Vue实现手机计算器
2020/08/17 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
深入理解Python中的super()方法
2017/11/20 Python
python绘制双柱形图代码实例
2017/12/14 Python
Python中的pack和unpack的使用
2018/03/12 Python
python批量爬取下载抖音视频
2019/06/17 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
python 字典的打印实现
2019/09/26 Python
python函数定义和调用过程详解
2020/02/09 Python
python 项目目录结构设置
2020/02/14 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
Fossil美国官网:Fossil手表、手袋、珠宝及配件
2017/02/01 全球购物
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
设计总监岗位职责
2013/12/07 职场文书
用python实现监控视频人数统计
2021/05/21 Python
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL