在javascript中,我们一般都只用push向数组的尾部插入新元素的,但是其实在javascript中还有另外一个方法和push一样,也是向数组尾部插入新元素的,但是他们之间却存在着一定的区别,当我们看下面的代码的时候就明显的知道了:

1. 通过使用push操作数组:

2. 通过使用concat操作数组:

从上面的两个操作就很明显的看出来push和concat的区别了

push 遇到数组参数时,把整个数组参数作为一个对象插入;而 concat 则是拆开数组参数,一个元素一个元素地加进去。

push 直接改变当前数组;concat 不改变当前数组。

下面通过代码证明上面的区别,代码如下:

<script>
var colors=["red","blue","green"];
var a={name:"张三"};
var count=colors.push(a);
alert(count); //输出:4
alert(colors); //输出:red,blue,green,[object Object]
colors=colors.concat(a);
alert(colors[3]);//输出:red,blue,green,[object Object],[object Object]  显然concat将a集合拆分成name对象和"张三"对象,而push则是将a当成一个对象
</script>

转载于:https://www.cnblogs.com/GreenLeaves/p/5895569.html

JavaScript引用类型之Array数组的concat()和push()方法的区别相关推荐

  1. JavaScript引用类型之Array数组之强大的splice()方法

    splice()方法可以说是Array数组最强大的方法,他的用法很多,主要用法是向数组的中部插入项! 下面是它的用法: arrayObject.splice(index,howmany,element ...

  2. c++ 数组截取_【学习教程】JavaScript中原生Array数组方法详解

    来源 | http://www.fly63.com/article/detial/9692 JS中,数组可以通过阵列构造函数或[]字面量的方式创建.数组是一个特殊的对象,继承自对象原型,但用typeo ...

  3. JavaScript中原生Array数组方法详解

    JS中,数组可以通过阵列构造函数或[]字面量的方式创建.数组是一个特殊的对象,继承自对象原型,但用typeof运算判断时,并没有一个特定的值,仍然返回'对象'.但使用[] instanceof Arr ...

  4. 【TypeScript系列教程14】Array数组对象的常见的方法

    目录 TypeScript Array(数组) concat() every() filter() forEach() join() lastIndexOf() map() pop() push(

  5. 数组push()方法和concat()方法的区别

    定义: push()添加到数组末尾,并返回修改后数组的长度. concat()基于当前数组中的所有项创建一个新数组.具体来说,这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾, ...

  6. Javascript基础之Array数组API

    Javascript数组原型提供的方法非常之多,主要分为三种: 直接修改原数组 原数组不变,返回新数组 数组遍历方法 直接修改原数组的API pop() 删除一个数组中的最后的一个元素,并且返回这个元 ...

  7. html数组拼接js,javascript合并两个数组最简单的实现方法

    在开发的过程中,我们很多时候会遇到需要将两个数组合并成一个数组的情况出现. var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6]; // 将arr1和arr2合并成为[ ...

  8. javascript学习系列(6):数组中的pop等方法

    最好的种树是十年前,其次是现在.歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主  放弃很容易但是坚持一定很酷     我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的 ...

  9. 【我不熟悉的javascript】判断字符串数组内容是否相等的方法,不考虑顺序

    单元测试例子如下 const compareArray = [{arr1: ['no', 'no', 'yes', 'yes'], // 数组1arr2: ['yes', 'yes', 'yes', ...

  10. javascript学习系列(23):数组中的解构方法

    最好的种树是十年前,其次是现在.歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主  放弃很容易但是坚持一定很酷     我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的 ...

最新文章

  1. HTML中收藏和删除的小图案,YS - 《网页制作》复习题(多选题)
  2. SpringMVC杂记
  3. 《TensorFlow技术解析与实战》——第3章 可视化TensorFlow 3.1PlayGround
  4. 【Leetcode】62. 不同路径
  5. 96秒100亿!如何抗住双11高并发流量?
  6. python程序员脱单攻略_作为一只程序员,如何脱单?
  7. IJCAI 2018:中科院计算所:增强对话生成一致性的序列到序列模型
  8. 计算机win10开机音乐,大师传授win10系统电脑开机总是自动播放音乐的方案
  9. mysql触发器调用存储过程出错_mysql 触发器中调用存储过程
  10. excel表中怎么插入visio_Excel工作表中的排序,你真的掌握吗?10张动图带你了解!...
  11. 文件IO open 与 标准 IO fopen 的对应
  12. python sqlite3 executemany_python – SQLite executemany的问题
  13. 【白话设计模式】23种设计模式一句话通俗讲解
  14. 适配移动端的html模板
  15. 201912月全国计算机二级考试,201912月天津计算机二级报名时间:12月5日-12月7日!附报名入口...
  16. 图书销售系统测试报告
  17. 第七章--图--基本概念
  18. Online Event | Building Teams Apps Together
  19. 苹果mac电脑怎么设置默认浏览器
  20. 微服务架构系列主题:微服务架构概述

热门文章

  1. AltTab 把 Windows 的 Alt+Tab 功能带到 macOS
  2. 如何在苹果Mac上删除APFS卷?
  3. M1 Mac 是否入手,先了解这些常用软件兼容性!!
  4. Java 集合系列09之 Map架构
  5. Effective_STL 学习笔记(四十五) 注意 count、find、binary_search、lower_bound、upper_bound 和 equal_range 的区别...
  6. recyclerview简单实现单选多选反选全选
  7. WPF自定义控件(一)の控件分类
  8. [第五组] 典型用户 +用例+功能说明书+技术说明书 2017.07.25版
  9. Python学习笔记8—Python函数
  10. Django模板过滤