ES6复制数组和合并数组

一、复制数组与合并数组

  复制数组:它是复合数据类型,直接复制只是复制了指向底层数据结构的指针,而不是复制一个全新的数组

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>数组的扩展</title>
</head>
<body>
</body>
<script type="text/javascript">
/*
1、扩展运算符:扩展运算符(spread)是三个点,类似rest参数的逆运算,将一个数组转换为逗号分隔开的参数序列
*****/
console.log(...[1, 2, 3]); // 主要用于函数的的调用
function push(arr, ...items) {
// 函数的调用,使用扩展运算符,该运算符将一个数组变为参数序列
arr.push(...items);
} function add(x, y) {
return x + y;
}
const number = [4, 354];
// 函数的调用,使用扩展运算符,该运算符将一个数组变为参数序列
let a = add(...number);
console.log(a) /*
2、替代函数的apply方法
*****/
// (1)扩展运算符可以展开数组,所以不需要apply方法将数组转换为函数的参数
// es5:
let arr1 = [0, 1, 2, 3];
let arr2 = [5, 6, 4, 3, 2];
console.log(arr1.push(...arr2)) /*
3、扩展运算符的应用
*****/
// (1)复制数组:复合数据类型,直接复制只是复制了指向底层数据结构的指针,而不是复制一个全新的数组
const a1 = [1, 2, 3];
const a2 = a1;
// a2[0]=20;
// a2并不是a1克隆的,而是指向同一份数据的另一个指针,修改a1时a1也会跟着改变
a1; //20, 2, 3 // 解决方法:es5
const a3 = a1.concat();
// 修改a3的同时不会改变a1
a3[0] = 20;
a1 //[1, 2, 3]
// es6:克隆方法(2种)
const a4 = [...a1];
const [...a5] = a1; /* (2)合并数组*/
const array1 = [1, 2];
const array2 = ['zhou', 'zhou'];
const array3 = ['z', 'zou'];
// es5
array1.concat(array2)
// es6
console.log([...array1, ...array2,...array3])
</script>
</html>

  

ES6复制数组的更多相关文章

  1. ES6常用点

    原文    http://es6.ruanyifeng.com/#docs 变量--------------------------------------------- 1.let声明.const声 ...

  2. 关于ES6新增的东西(二)

    六.原生Promise 就是一个对象,用来传递异步操作的数据(消息) pending(等待.处理中)-> Resolve(完成.fullFilled) -> Rejected(拒绝.失败) ...

  3. ES6数组扩展

    前面的话 数组是一种基础的JS对象,随着时间推进,JS中的其他部分一直在演进,而直到ES5标准才为数组对象引入一些新方法来简化使用.ES6标准继续改进数组,添加了很多新功能.本文将详细介绍ES6数组扩 ...

  4. [js高手之路]es6系列教程 - 解构详解

    解构通俗点说,就是通过一种特定格式,快捷的读取对象/数组中的数据的方法, es6之前,我们通过对象名称[键] 读取数据 var User = { 'name' : 'ghostwu', 'age' : ...

  5. ES6 二进制数组

    二进制数组(ArrayBuffer对象.TypedArray视图和DataView视图)是JavaScript操作二进制数据的一个接口.这些对象早就存在,属于独立的规格(2011年2月发布),ES6将 ...

  6. 数组的复制及ES6数组的扩展

    一.数组的复制 // alert([1,2,3]==[1,2,3]); let cc = [0,1,2]; let dd = cc; alert(dd==cc);//此时改变dd会影响cc ES5 只 ...

  7. ES6常用知识点小结

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准. 因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015(简称ES2015).虽然浏览器在不 ...

  8. 关于 JavaScript 中的复制数组

    之前在写扫雷的时候,因为需要用到二维数组,当时就在复制数组这里出现了问题,所以记录一下. 当我们在需要复制数组的时候一定需要注意,数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针, ...

  9. ES6数组扩展运算符

    1 扩展运算符的运用 (1)复制数组 数组是复合的数据类型,直接复制的话,只是复制了指向底层数据机构的指针,而不是克隆一个全新的数组; const a1=[1,2]; const a2= a1; a2 ...

随机推荐

  1. mysql查询表里的重复数据方法

    select username,count(*) as count from hk_test group by username having count>1;

  2. iptables之精髓(二)

    iptables实际操作 使用-v选项后,iptables为我们展示的信息更多了,那么,这些字段都是什么意思呢?我们来总结一下 pkts:对应规则匹配到的报文的个数. bytes:对应匹配到的报文包的 ...

  3. ubuntu docker 环境安装

    转载:https://www.cnblogs.com/blog-rui/p/9946382.html 1. 在Ubuntu中安装Docker 更新ubuntu的apt源索引 sudo apt-get ...

  4. 为TMenuItem增加指针Data属性

    Delphi的有些组件中都包含.Data属性,比如TTreeNode,.Data属性可以认为是一个指针,可以指向任何类或者结构,方便后续操作. 但是TMenuItem没有.Data属性,下面介绍最简单 ...

  5. Python——使用Notepad++运行

    安装 安装python,安装完后找到python.exe,记录绝对路径,我的是:E:\log\python-3.7.4\python.exe 设置 用Notepad++打开python脚本,按F5会弹 ...

  6. 10-3 LVM(逻辑卷管理器)

    LVM(逻辑卷管理器) 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 允许在多个物理设备间重新组织文件系统 将设备指定为物理卷 用一个或者多个物理卷来创建一个卷组 物理卷是用固定大小的物理 ...

  7. git clone、 remote、fetch、pull、push、remote

    git clone命令笔记 作用:远程克隆版本库 1. 克隆版本库 git clone <版本库的网址> git clone zoran@192.168.2.167:/data/gitda ...

  8. 学习SpringBoot整合SSM三大框架源码之SpringBoot

    Spring Boot源码剖析 一.Spring Boot 项目的启动入口流程分析 Spring Boot项目的启动入口main线程上有一个@SpringBootApplication( @Confi ...

  9. Eureka 分析记录

    本文是一些记录和想方法,分析大部分来自 http://www.iocoder.cn/Eureka/ 感兴趣的可以去看一下.

  10. 【ARM-Linux开发】arm-none-Linux-gnueabi-gcc下载安装

    arm-none-Linux-gnueabi-gcc是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具.可用于交叉编译ARM系统中所有环节的代码,包括 ...