javascript合并两个数组最简单的实现方法
在开发的过程中,我们很多时候会遇到需要将两个数组合并成一个数组的情况出现。
var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6]; // 将arr1和arr2合并成为[1, 2, 3, 4, 5, 6]
这里总结一下在JavaScript中合并两个数组的方法。
for循环数组
这个方式是最简单的,也是最容易实现的。
var arr3 = []; // 遍历arr1 for (var i = 0; i < arr1.length; i++) { arr3.push(arr1[i]); } // 遍历arr2 for (var j = 0; j < arr2.length; j++) { arr3.push(arr2[j]); } console.log(arr3); // [1,2,3,4,5,6]
另外也可以用增强型for循环或forEach()方法去实现。
for循环这种方式几乎没有任何问题,只是很多追求精简编程的人会鄙视这种方式(摊手)。
concat()方法
JavaScript的Array对象中提供了一个concat()方法,作用是连接两个或更多的数组,并返回一个新的数组。
var arr3 = arr1.concat(arr2); console.log(arr3); // [1,2,3,4,5,6]
要注意的是,concat()方法不会改变原数组,而是返回一个新的数组。这样,当我们需要进行多次数组合并的时候,就会造成内存浪费。
apply()方法
函数的apply方法有一个特性,那就是func.apply(obj,argv),argv是一个数组。所以我们可以利用这点。
arr1.push.apply(arr1, arr2);
调用arr1.push这个函数实例的apply()方法,同时把arr1、arr2当作参数传入,这样arr1.push这个方法就会遍历arr1和arr2数组的所有元素,达到合并的效果。
简单理解就是,上面这段代码可以看做是:
arr1.push(4, 5, 6);
这种方式只用一行代码就解决了问题,可以说非常6了。
总结
上面三种方法在常规使用上其实并没有区别,只是要另外注意两个小问题:
1.以上3种合并方法在举例的时候并没有考虑过两个原数组谁的长度更小,好的做法是预先判断两个原数组哪个更大,然后使用大数组合并小数组,这样就能减少了数组元素操作的次数,提高了代码的执行效率。
2.有时候我们既不希望原数组(arr1、arr2)改变,又不想手动新增一个变量,这时就只能使用concat()方法了。
以上方法很简单,感谢大家的学习和对我们的支持。
相关推荐
-
详解JavaScript中的数组合并方法和对象合并方法
1 数组合并 1.1 concat 方法 var a=[1,2,3],b=[4,5,6]; var c=a.concat(b); console.log(c);// 1,2,3,4,5,6 console.log(a);// 1,2,3 不改变本身 1.2 循环遍历 var arr1=['a','b']; var arr2=['c','d','e']; for(var i=0;i<arr2.length;i++){ arr1.push(arr2[i]) } console.log(arr1);/
-
JavaScript中数组的合并以及排序实现示例
合并两个数组 - concat() 源代码: <!DOCTYPE html> <html> <body> <p id="demo">点击按钮合并数组.</p> <button onclick="myFunction()">点我</button> <script> function myFunction() { var hege = ["Cecilie
-
JavaScript合并两个数组并去除重复项的方法
本文实例讲述了JavaScript合并两个数组并去除重复项的方法.分享给大家供大家参考.具体实现方法如下: Array.prototype.unique = function() { var a = this.concat(); for(var i=0; i for(var j=i+1; j if(a[i] === a[j]) a.splice(j, 1); } } return a; }; //Demo var array1 = ["a","b"]; var ar
-
js合并两个数组生成合并后的key:value数组
核心代码 // var activeSubjectsName = ["语文", "数学", "英语", "思想品德", "科学"]; // var activeSubjectsNum = [46, 2, 2, 28, 29]; // var activeSubjectsArr = []; for (var i = 0; i < activeSubjectsName.length; i++) { con
-
js实现json数组分组合并操作示例
本文实例讲述了js实现json数组分组合并操作.分享给大家供大家参考,具体如下: <script> var arr = [ {"id":"1001","name":"值1","value":"111"}, {"id":"1001","name":"值1","value":&qu
-
javascript合并两个数组最简单的实现方法
在开发的过程中,我们很多时候会遇到需要将两个数组合并成一个数组的情况出现. var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6]; // 将arr1和arr2合并成为[1, 2, 3, 4, 5, 6] 这里总结一下在JavaScript中合并两个数组的方法. for循环数组 这个方式是最简单的,也是最容易实现的. var arr3 = []; // 遍历arr1 for (var i = 0; i < arr1.length; i++) { arr3.push(
-
JS实现合并两个数组并去除重复项只留一个的方法
本文实例讲述了JS实现合并两个数组并去除重复项只留一个的方法.分享给大家供大家参考,具体如下: //It's merge arr1 and arr2 , delete the same element only leave one //It's only apdapter array. If object, no. //The sequence of the two array is not required. mergeArray:function (arr1, arr2){ for (var
-
js深度合并两个数组对象的实现
目录 js深度合并两个数组对象 关于数组对象的深浅合并 js深度合并两个数组对象 js合并两个数组对象, 如果a中含有b,则b的值覆盖a的值 如果a中不含有b 则b的值新增到a MergeRecursive(obj1, obj2) { // 合并两个数组 for (var p in obj2) { if (obj1[p] === undefined) { // 如果obj1没有p 直接把obj2的p加入 obj1[p] = obj2[p] } try { if (obj2[p].construc
-
JavaScript比较两个数组的内容是否相同(推荐)
今天意外地发现JavaScript是不能用==或===操作符直接比较两个数组是否相等的. alert([]==[]); // false alert([]===[]); // false 以上两句代码都会弹出false. 因为JavaScript里面Array是对象,==或===操作符只能比较两个对象是否是同一个实例,也就是是否是同一个对象引用.目前JavaScript没有内置的操作符判断对象的内容是否相同. 但是惯性思维让人以为数组也是值,是可以比较的. 如果要比较数组是否相等,就只能遍历数组
-
python实现合并两个数组的方法
本文实例讲述了python实现合并两个数组的方法.分享给大家供大家参考.具体如下: python合并两个数组,将两个数组连接成一个数组,例如,数组 a=[1,2,3] ,数组 b=[4,5,6],连接后:[1,2,3,4,5,6] 方法1 a=[1,2,3] b=[4,5,6] a=a+b 方法2 a=[1,2,3] b=[4,5,6] a.extend(b) 希望本文所述对大家的Python程序设计有所帮助.
-
php通过array_merge()函数合并两个数组的方法
本文实例讲述了php通过array_merge()函数合并两个数组的方法.分享给大家供大家参考.具体分析如下: php通过array_merge()函数合并两个数组,array_merge()是一个php函数,用于将两个或者多个数组合并,后一个数组会追加到前一个数组后面,并返回结果数组.它接受两个或两个以上的数组,并返回一个包含了所有元素的数组. $first = array("aa", "bb", "cc"); $second = array(
-
python使用append合并两个数组的方法
本文实例讲述了python使用append合并两个数组的方法.分享给大家供大家参考.具体如下: lista = [1,2,3] listb = [4,5,6] mergedlist =[] for elem in lista: mergedlist.append(elem) for elem in listb: mergedlist.append(elem) 希望本文所述对大家的Python程序设计有所帮助.
-
JavaScript获取两个数组交集的方法
本文实例讲述了JavaScript获取两个数组交集的方法.分享给大家供大家参考.具体如下: 这里传入的数组必须是已经排过序的 /* finds the intersection of * two arrays in a simple fashion. * * PARAMS * a - first array, must already be sorted * b - second array, must already be sorted * * NOTES * * Should have O(
-
JS合并两个数组的3种方法详解
这篇文章主要介绍了JS合并两个数组的3种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要将两个数组合并成为一个的情况.比如: var a = [1,2,3]; var b = [4,5,6]; 有两个数组a.b,需求是将两个数组合并成一个.方法如下: 1.concat js的Array对象提供了一个叫concat()方法,连接两个或更多的数组,并返回结果. var c = a.concat(b); //c=[1,2,3,4,5,6]
随机推荐
- asp.net 虚方法、抽象方法、接口疑问
- Eclipse开发Hibernate应用程序
- JS延迟加载(setTimeout) JS最后加载
- Sql server中内部函数fn_PhysLocFormatter存在解析错误详解
- js中this用法实例详解
- 提供一个可以将DocX转为doc的文档转换器 地址
- spring基础概念AOP与动态代理理解
- 详解python之配置日志的几种方式
- Swift和C语言混合编程教程
- 一个事半功倍的c#方法 动态注册按钮事件
- node+express+jade制作简单网站指南
- 非常不错的flash采集程序测试通过
- 详解C语言中strpbrk()函数的用法
- MFC程序对文件的处理方法
- vc获取计算机名和ip地址的方法
- jquery ajax跨域解决方法(json方式)
- smarty循环嵌套用法示例分析
- javascript 全角转换实现代码
- jquery ajax执行后台方法
- Flash简单加密 限制 Flash 在指定域名/网址中播放的方法