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模拟JQuery的show与hide动画函数代码
Sep 20 Javascript
根据表格中的某一列进行排序的javascript代码
Nov 29 Javascript
JavaScript检测实例属性, 原型属性
Feb 04 Javascript
理解Javascript文件动态加载
Jan 29 Javascript
jquery判断类型是不是number类型的实例代码
Oct 07 Javascript
详解如何在vue中使用sass
Jun 21 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 jQuery
vue-prop父组件向子组件进行传值的方法
Mar 01 Javascript
JS实现li标签的删除
Apr 12 Javascript
微信小程序选择图片控件
Jan 19 Javascript
JavaScript 防篡改对象的用法示例
Apr 24 Javascript
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
通过实例了解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
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
php类的定义与继承用法实例
2015/07/07 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
javascript学习笔记(七)利用javascript来创建和存储cookie
2011/04/08 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
微信WeixinJSBridge API使用实例
2015/05/25 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
js实现简单五子棋游戏
2020/05/28 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
[01:16:28]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第二场 2月23日
2021/03/11 DOTA
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
必须要使用游标的SQL语句有那些
2012/05/07 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
党组织公开承诺书
2014/03/29 职场文书
明信片寄语大全
2014/04/08 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
女生节标语
2014/06/26 职场文书
2015年元旦标语大全
2014/12/09 职场文书
学校勤俭节约倡议书
2015/04/29 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
领导离职感言
2015/08/03 职场文书
学生会任命书范本
2015/09/21 职场文书
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android