javascript 两个 数组 怎么 合并 显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 两个 数组 怎么 合并 显示相关的知识,希望对你有一定的参考价值。

为什么数组合并方法不行,如下:

<script type="text/javascript">
var array1 = new Array(1,2,3); //第1数组
var array2 = new Array(4,5,6); //第2数组
var array = new Array(); //存放合并后的数组
array.concat(array1,array2); //数组1,2合并方法一

document.write("<hr />");
document.write(" ||| ");
document.write(array1); //显示数组1
document.write("<br /> ||| ");
document.write(array2); //显示数组2
document.write("<br /> ||| ");
document.write("第一种合并:"+array); //显示合并后的数组
document.write("<br /> ||| ");
document.write("第二种合并:"+array1.concat(array2)); //数组1,2合并方法二
document.write("<hr />");

</script>

通过concat方法进行数组合并.

var mergeTo = [4,5,6],mergeFrom = [7,8,9]; //定义2个要合并的数组mergeTo和mergeFrom
mergeTo = mergeTo.concat(mergeFrom);  //mergeTo的结果是[4, 5, 6, 7, 8, 9]

concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

语法

arrayObject.concat(arrayX,arrayX,......,arrayX)

参数

描述

arrayX    必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。    

返回值

返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

参考技术A

concat 方法只是给你返回合并后的字符串。并不是对你的 array 做修改操作。


定义和用法 (w3c 官方)

concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。


解决办法:

1.

array = array.concat(array1,array2);

将合并后的数组或字符重新赋值。

2.

for(x in array1)
    array.push(array1[x]);

for(y in array2)
    array.push(array2[y]);

数组有个方法是push().


定义和用法 (w3c 官方)

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。


参考链接: http://www.w3cschool.cn/jsref_obj_array.html

参考技术B 你写错了
array = array1.concat(array2);本回答被提问者采纳

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 两个 数组 怎么 合并 显示的主要内容,如果未能解决你的问题,请参考以下文章

javascript合并两个数组

在 JavaScript 中合并两个对象(NodeList)数组

js中new 了两个Object数组。怎么样将数组内容合并,重复的内容?

在javascript中合并两个字典数组

合并两个数组并就地修改它们(javascript)[重复]

如何使用 Node.js/JavaScript 合并两个按键值匹配的数组值