js中new 了两个Object数组。怎么样将数组内容合并,重复的内容?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中new 了两个Object数组。怎么样将数组内容合并,重复的内容?相关的知识,希望对你有一定的参考价值。
ARR1=[[1],[2],[3],[4]];
ARR2=[3],[4],[5],[6]];
怎么才能让得到的ARR3=[[1],[2],[3],[4],[5],[6]];
也就是去掉多余重复的?
<!--
//去掉数组 重复的项
Array.prototype.unique = function()
var a = ;
for(var i=0; i<this.length; i++)
if(typeof a[this[i]] == "undefined")
a[this[i]] = 1;
this.length = 0;
for(var i in a)
this[this.length] = i;
return this;
var ARR1=[[1],[2],[3],[4]];
var ARR2=[[3],[4],[5],[6]];
var ARR3=ARR1.concat(ARR2);
ARR3=ARR3.unique();
alert(ARR3);
//-->
</script>
把这些代码丢到你网页他就会出现你要的。 参考技术B 如果是普通数据类型, 非常简单
var ARR1=[1,2,3,4];
var ARR2=[3,4,5,6];
function mergeArray(arr1, arr2)
var _arr = [];
for (var i = 0; i < arr1.length; i++)
_arr.push(arr1[i]);
var _dup;
for (var i = 0; i < arr2.length; i++)
_dup = false;
for (var _i = 0; _i < arr1.length; _i++)
if (arr2[i] === arr1[_i])
_dup = true;
break;
if (!_dup)
_arr.push(arr2[i]);
return _arr;
var b = mergeArray(ARR1, ARR2);
//b = [1, 2, 3, 4, 5, 6]
//楼上的方法得到的是['1','2','3','4','5'], 转换成字符串了
如果是复杂对象及数组, 则稍微麻烦一些, 需要序列化后比较
Object.prototype.Serialize = function()
var type = __typeof__(this);
switch(type)
case 'Array' :
var strArray = '[';
for ( var i=0 ; i < this.length ; ++i )
var value = '';
if ( this[i] )
value = this[i].Serialize();
strArray += value + ',';
if ( strArray.charAt(strArray.length-1) == ',' )
strArray = strArray.substr(0, strArray.length-1);
strArray += ']';
return strArray;
case 'Date' :
return 'new Date(' + this.getTime() + ')';
case 'Boolean' :
case 'Function' :
case 'Number' :
case 'String' :
return this.toString();
default :
var serialize = '';
for ( var key in this )
if ( key == 'Serialize' ) continue;
var subserialize = 'null';
if ( this[key] != undefined )
subserialize = this[key].Serialize();
serialize += '\r\n' + key + ' : ' + subserialize + ',';
if ( serialize.charAt(serialize.length-1) == ',' )
serialize = serialize.substr(0, serialize.length-1);
serialize += '\r\n';
return serialize;
;
Object.prototype.Equal = function(o)
return this.Serialize() == o.Serialize();
;
function mergeArray(arr1, arr2)
var _arr = [];
for (var i = 0; i < arr1.length; i++)
_arr.push(arr1[i]);
var _dup;
for (var i = 0; i < arr2.length; i++)
_dup = false;
for (var _i = 0; _i < arr1.length; _i++)
if (arr2[i].Equal(arr1[_i]))
_dup = true;
break;
if (!_dup)
_arr.push(arr2[i]);
return _arr;
//注意: 序列化的对象不能包含循环引用的情况, 否则会出现无限递归的情况, 导致浏览器假死本回答被提问者采纳 参考技术C ARR3=ARR1.concat(ARR2); //即可得到所需
两个数组如何对应相加js
参考技术A 通过concat方法进行数组合并.varmergeTo=[4,5,6],mergeFrom=[7,8,9];定义2个要合并的数组mergeTo和mergeFrommergeTo=mergeTo.concat(mergeFrom);mergeTo的结果是[4,5,6,7,8,9]
concat()方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法
arrayObject.concat(arrayX,arrayX,......,arrayX)
参数
描述
arrayX必需。
该参数可以是具体的值,也可以是数组对象。
可以是任意多个。
返回值
返回一个新的数组。
该数组是通过把所有arrayX参数添加到arrayObject中生成的。
如果要进行concat()操作的参数是数组,那么添加的是数组中的元素,而不是数组。
以上是关于js中new 了两个Object数组。怎么样将数组内容合并,重复的内容?的主要内容,如果未能解决你的问题,请参考以下文章
js 中 new Array() var a={} var a=[] new Object()
请问object中有个数组,在js中怎么强转转成list的类型