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

ARR1=[[1],[2],[3],[4]];
ARR2=[3],[4],[5],[6]];

怎么才能让得到的ARR3=[[1],[2],[3],[4],[5],[6]];
也就是去掉多余重复的?

第1个回答  2011-07-18
<script language="JavaScript">
<!--
//去掉数组 重复的项
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>

把这些代码丢到你网页他就会出现你要的。
第2个回答  推荐于2016-06-28
如果是普通数据类型, 非常简单

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;
}

//注意: 序列化的对象不能包含循环引用的情况, 否则会出现无限递归的情况, 导致浏览器假死本回答被提问者采纳
第3个回答  2011-07-18
ARR3=ARR1.concat(ARR2); //即可得到所需

js中new 了两个Object数组。怎么样将数组内容合并,重复的内容?
var ARR3=ARR1.concat(ARR2);ARR3=ARR3.unique();alert(ARR3);\/\/--> <\/script> 把这些代码丢到你网页他就会出现你要的。

在js中怎么将两个数组合并成一个数组
1、用 join() 函数,但我发现使用join函数要求列表中的元素都是字符串,所以需要将列表中的元素都转换为字符串。a = [1,2,3,4,5]a = [str(i) for i in a]b = int(''.join(a))print(b)2、用 sum() 函数求和,那就需要对每个元素的十分位和百分位或者千分位进行转换 a = [1,2...

js如何处理两个json数组去除重复数据,然后合并数组,求大神帮忙解决下...
var c = a.concat(b),\/\/合并成一个数组temp = {},\/\/用于id判断重复result = [];\/\/最后的新数组\/\/遍历c数组,将每个item.id在temp中是否存在值做判断,如不存在则对应的item赋值给新数组,并将temp中item.id对应的key赋值,下次对相同值做判断时便不会走此分支,达到判断重复值的目的;c.m...

javascript 两个 数组 怎么 合并 显示
arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。返回值 返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

怎么用js、jquery进行进行数组的去重合并,去掉重复了拿到不重复的...
var arr3=new ArrayList();for(var i=0;i<arr1;i++){ var stra=arr1[i];var count=0;for(var j=0;i<arr2;j++){ var strb=arr2[j];if(stra==strb){ count++;} } if(count==0){\/\/表示数组1的这个值没有重复的,放到返回列表中 arr3.push('stra');} } arr3就是你要的...

怎么把两个js 数组过滤合并成一个数组?谢谢
首先考虑的是两个数组之间靠什么来关联:根据newArr得出: province的id对应的city里面的pid;所以遍历数组时候合并的逻辑: id ==pid.然后合为新数组的一个元素。var newArr=[];function combineArr(arr1, arr2){ var len = arr1.length;for(var i=0; i<len; i++){ if(arr1[i].id ==...

js代码如何将获取的两个数存入到同一个数据库字段里?
你可以把文字和图片路径用一个特定的符号连接成一个字符串,再把这个字符串存到数据库字段中,比如用竖线符号:var str = 文字+"|"+图片路径;取出数据时再把它分割为两个数据:var arr = 数据库返回的数据.split("|");这时候 arr[0] 是文字,arr[1]是图片路径 ...

js如何处理数组去除重复数据,然后合并数组,求大神帮忙解决下_百度知 ...
首先,你提供的例子中,并不存在a,b,c值相同且e不同的元素(只有a,b,c,e值都相同的)。其次,当e不相同时,究竟保留哪个去掉哪个?当存在三个以上a,b,c值相同的元素时,如何判断e不相同(比方说其中两个的e相同,另一个e不同,那么这三个的e究竟算相同还是不同?)。

js二维数组里面的数组,根据某一项值相同就合并
var da={"success": {"1": [{"t":"A4","c":"2017\/7\/3"}, {"t":"A2","c":"2017\/7\/3"},{"t":"A3","c":"2017\/7\/4"}, {"t":"A1","c":"2017\/7\/4"}], "2": [{"t":

JS判断两个对象内容是否相等
当我们只需要两个对象的内容相同的时候,他就没效果了 思路 只要两个对象的名和键值都相同。那么两个对象的内容就相同了 1.用Object.getOwnPropertyNames拿到对象的所以键名数组 2.比对键名数组的长度是否相等。否=>false。真=>3 3.比对键名对应的键值是否相等 粗略一看没问题 但是细心的同学发现如果 ...

相似回答