ES6拓展运算符(...)用例

1.找出数组中最大的数

使用Math.max()函数来获取最大值,数组是不能直接作为Math.max()的参数,我们需要把它展开。在ES6之前,我们也是需要结合apply来处理:

var arr = [2, 4, 8, 6, 0];

function max(arr) {
 return Math.max.apply(null, arr);
}

console.log(max(arr));

使用ES6扩展运算符(...)

var arr = [2, 4, 8, 6, 0];
console.log(Math.max(...arr));

2.复制数组

在ES6之前,是不能直接通过赋值的方式复制数组的。

var arr = [‘a‘, ‘b‘, ‘c‘];
var arr2 = arr;

arr2.push(‘d‘);

console.log(arr);//输出[‘a‘,‘b‘,‘c‘,‘d‘]

直接赋值的方式,实际上引用的是同一个数组,当任何一个数组里面的元素发生变化,两个数组都会同时改变。

ES6使用扩展运算符

var arr = [‘a‘, ‘b‘, ‘c‘];
var arr2 = [...arr];

arr2.push(‘d‘);

console.log(arr);//输出[‘a‘,‘b‘,‘c‘]

虽然arr2添加了元素‘d‘,但是对数组arr来说,它的元素列表是没有发生改变的。这样就很简单实现了复制的功能。

3.插入数组

如果我们要在一个数组插入另外一个数组的元素,可以结合splice和apply使用,如:

var arr = [1, 2, 3, 4];
 var arr1 = ["a", "b", "c", "d"];
 arr.splice.apply(arr, [2, 0].concat(arr1))
 console.log(arr)// [1, 2, "a", "b", "c", "d", 3, 4]

ES6使用扩展运算符

 var arr=[1,2,3,4];
      var arr1=["a","b","c","d"]
       arr.splice(2,0,...arr1)
      console.log(arr)// [1, 2, "a", "b", "c", "d", 3, 4]

4.将字符串转化为数组

 var str ="hello";
    var str1 = [...str];
    console.log(str1)// ["h", "e", "l", "l", "o"]

5.收集剩余参数

 function fn (a,b,...args) {
           console.log(a)//1
           console.log(b)//2
           console.log(args)//[3,4,5]
       }
       fn(1,2,3,4,5)

6.解构数组

var arr =[1,2,3,4,5];
       var [a,b,c,...arr1] = arr;
       console.log(a,b,c,arr1)//1,2,3[4,5]

原文地址:https://www.cnblogs.com/zl-light/p/11658834.html

时间: 2024-11-05 22:33:52

ES6拓展运算符(...)用例的相关文章

es6函数的rest参数和拓展运算符(...)的解析

es6的新特性对函数的功能新增加了rest参数和...的拓展运算符.这是两个什么东西呢? 先来看一个问题:如何获取一个函数除了定义的参数之外的其他参数?传统的做法是借助函数的arguments关键字来获取的. 方法如下: function add(a,b){ var i=2,rest=[]; if(arguments.length>2){ for(i;i<arguments.length;i++){ rest.push(arguments[i]); } } return rest; } con

【转】es6的拓展运算符 spread ...

原文:https://blog.csdn.net/qq_30100043/article/details/53391308 The rest parameter syntax allows us to represent an indefinite number of arguments as an array. Syntax function f(a, b, ...theArgs) { // ... } ---------------------------------------------

关于java中自增,自减,和拓展运算符的小讨论

java中运算符很多,但是能深入讨论的不算太多.这里我仅仅以++,*=为例做讨论. 例:++ i=0; i=i++ + ++i;//i=1 i=++i+i++;//i=2 i=i++ -++i;//i=-2 因为++运算符遵循的规则:++在前是先计算,后使用:++在后是后计算,先使用: 以i=++i+i++;详解: 先++i,结果是先i加1,再产生i的一份拷贝做为下一步运算的值,假设拷贝为i_copy1,那么++i以后i_copy1的值为1,i值为1.再i++,结果是产生一份i的拷贝做为下一步运

JAVA学习笔记-逻辑运算符、位运算符、拓展运算符

逻辑运算符: 逻辑与:&& 逻辑或:|| 逻辑非:! 注意:逻辑与和逻辑或采用短路的方式.从左到右计算,如果确定值则不会再计算下去. Eg:boolean c =1>2 && 2>(3/0); &&不会报异常错误,说明没有执行3/0; 位运算符: ~取反:0得1 1得0 &按位与:00得0,01得0,10得0,11得1 |按位或 :00得0,01得1,10得1,11得1 ^按位异或:00得0,01得1,10得1,11得0(相同为0,相异得

ES6扩展运算符(三点运算符)“...”用法和对象拷贝

es6拷贝数组对象有以下方法: 方法一: Object.assign() // 对象浅拷贝,obj1复制给obj2,这种方法要把obj2设置为{},不能const obj2 = ""; const obj1 = {a: 1}; const obj2 = {}; Object.assign( obj2, obj1) 方法二 :ES6扩展运算符(...) //对象浅拷贝,obj1复制给obj2 const obj1 = {a: 1}; const obj2 = {...obj1}; 方法三

2. es6扩展运算符

1. es扩展运算符 扩展运算符将一个数组转为用逗号分隔的参数序列: <script> console.log(...[1, 2, 3]) //1 2 3 // (1)将一个数组,变为参数序列 let add = (x, y) => x + y; let numbers = [1, 2]; console.log(add(...numbers))//3 // (2)使用扩展运算符展开数组代替apply方法,将数组转为函数的参数 // ES5 取数组最大值 console.log(Math

ES6扩展运算符的用途

ES6的扩展运算符可以说是非常使用的,在给多参数函数传参,替代Apply,合并数组,和解构配合进行赋值方面提供了很好的便利性. 扩展运算符就是三个点“...”,就是将实现了Iterator 接口的对象中的每个元素都一个个的迭代并取出来变成单独的被使用. 看这个例子: console.log(...[3, 4, 5]) 结果: 3 4 5 调用其实就是: console.log(3, 4, 5) 合并数组 可以使用扩展运算符将多个数组进行合并. let arr1 = [1, 2, 3] let a

es6 扩展运算符 三个点(...)

1  含义 扩展运算符( spread )是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) // 1 2 3 console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 [...document.querySelectorAll('div')] // [<div>, <div>, <div>] 该运算符主要用于函数调用. function push(

es6扩展运算符 (...)

扩展即展开,例如 var arr = [2,3,4] console.log(...arr) //2 3 4 这样就可以用于数组的添加,代码会优雅很多 console.log([1, ...arr ,5]) //2[1, 2, 3, 4, 5] 也可以通过push,将一个数组添加另一个数组的尾部 es5 var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; Array.prototype.push.apply(arr1, arr2); console.log(a