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 相关文章推荐
XML的代替者----JSON
Jul 21 Javascript
如何用ajax来创建一个XMLHttpRequest对象
Dec 10 Javascript
jQuery中:selected选择器用法实例
Jan 04 Javascript
jQuery层级选择器用法分析
Feb 10 Javascript
JQuery实现Ajax加载图片的方法
Dec 24 Javascript
JS实现拖拽的方法分析
Dec 20 Javascript
d3.js中冷门却实用的内置函数总结
Feb 04 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
Feb 22 Javascript
jQuery获取复选框选中的当前行的某个字段的值
Sep 15 jQuery
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
Dec 26 Javascript
vue 实现websocket发送消息并实时接收消息
Dec 09 Javascript
详解实现vue的数据响应式原理
Jan 20 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中读取和写入WORD文档的代码
2008/04/09 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
php异常处理捕获错误整理
2019/09/23 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
CSS+Jquery实现页面圆角框方法大全
2009/12/24 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
2011/12/12 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
利用jQuery解析获取JSON数据
2017/04/08 jQuery
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
JavaScript进阶(二)词法作用域与作用域链实例分析
2020/05/09 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
Python fileinput模块使用介绍
2014/11/30 Python
Python中的urllib模块使用详解
2015/07/07 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
python pandas获取csv指定行 列的操作方法
2019/07/12 Python
python实现简单图书管理系统
2019/11/22 Python
使用K.function()调试keras操作
2020/06/17 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
中国跨境海淘网站:考拉海购
2016/08/01 全球购物
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
导游个人求职信范文
2014/03/23 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
汽车销售员工作总结
2015/08/12 职场文书
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android