ES6复制数组
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复制数组的更多相关文章
- ES6常用点
原文 http://es6.ruanyifeng.com/#docs 变量--------------------------------------------- 1.let声明.const声 ...
- 关于ES6新增的东西(二)
六.原生Promise 就是一个对象,用来传递异步操作的数据(消息) pending(等待.处理中)-> Resolve(完成.fullFilled) -> Rejected(拒绝.失败) ...
- ES6数组扩展
前面的话 数组是一种基础的JS对象,随着时间推进,JS中的其他部分一直在演进,而直到ES5标准才为数组对象引入一些新方法来简化使用.ES6标准继续改进数组,添加了很多新功能.本文将详细介绍ES6数组扩 ...
- [js高手之路]es6系列教程 - 解构详解
解构通俗点说,就是通过一种特定格式,快捷的读取对象/数组中的数据的方法, es6之前,我们通过对象名称[键] 读取数据 var User = { 'name' : 'ghostwu', 'age' : ...
- ES6 二进制数组
二进制数组(ArrayBuffer对象.TypedArray视图和DataView视图)是JavaScript操作二进制数据的一个接口.这些对象早就存在,属于独立的规格(2011年2月发布),ES6将 ...
- 数组的复制及ES6数组的扩展
一.数组的复制 // alert([1,2,3]==[1,2,3]); let cc = [0,1,2]; let dd = cc; alert(dd==cc);//此时改变dd会影响cc ES5 只 ...
- ES6常用知识点小结
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准. 因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015(简称ES2015).虽然浏览器在不 ...
- 关于 JavaScript 中的复制数组
之前在写扫雷的时候,因为需要用到二维数组,当时就在复制数组这里出现了问题,所以记录一下. 当我们在需要复制数组的时候一定需要注意,数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针, ...
- ES6数组扩展运算符
1 扩展运算符的运用 (1)复制数组 数组是复合的数据类型,直接复制的话,只是复制了指向底层数据机构的指针,而不是克隆一个全新的数组; const a1=[1,2]; const a2= a1; a2 ...
随机推荐
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_08-freemarker基础-空值处理
把stus注释掉 正常访问就会报错 第20行 这里的stus为空,所以造成了这个错误. 非空判断 不为空用双问号来判断 <#if stus??><#list stus as stu& ...
- Qt编写自定义控件22-蚂蚁线
一.前言 关于蚂蚁线控件,相信很多用过PS的人都知道,在选中某个区域以后,边上的线条会有一种动态流动的效果,这种效果就叫做蚂蚁线,百科的解释是:动物的一种本能现象,领头的蚂蚁以随机的路线走向食物或洞穴 ...
- Jmeter之分布式部署测试
在使用Jmeter进行性能测试时,因受单机电脑的配置限制,可能无法支持较大数量的并发,此时就需要使用Jmeter提供的分布式测试的功能. jmeter分布式测试的执行原理是选择一台作为调度机,其他机器 ...
- [Scikit-learn] 1.5 Generalized Linear Models - SGD for Regression
梯度下降 一.亲手实现“梯度下降” 以下内容其实就是<手动实现简单的梯度下降>. 神经网络的实践笔记,主要包括: Logistic分类函数 反向传播相关内容 Link: http://pe ...
- Scrapy框架(1)
参考博客: 10.scrapy框架简介和基础应用 Scrapy框架(1)
- unity3d 嵌入iOS的 In App Purchase 应用程序内购买
Unity做东西是快,但是有些功能是需要额外开发的,比如 IAP (In App Purchase,应用程序内购买) 还好unity提供了灵活的扩展功能,允许嵌入原生代码来做一些unity未实现的功能 ...
- Eureka报错: Connect to localhost:8761 timed out
最近整理配置Eureka时, 注册服务后, Eureka服务一直报出如下错误: 如下是我的单台eureka的 application.yml 配置: spring: application: name ...
- Docker部署WordPress网站
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站,WordPress 不仅仅是一个博客程序,也是一款CMS,很多非博客网站也是用Wo ...
- 【DSP开发】帮您快速入门 TI 的 Codec Engine
德州仪器半导体技术(上海)有限公司 通用DSP 技术应用工程师 崔晶 德州仪器(TI)的第一颗达芬奇(DaVinci)芯片(处理器)DM6446已经问世快三年了.继DM644x之后,TI又陆续推出了D ...
- 最新 巨人网络java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.巨人网络等10家互联网公司的校招Offer,因为某些自身原因最终选择了巨人网络.6.7月主要是做系统复习.项目复盘.Leet ...