寻求一个最简单的方法,过滤两个数组中的相同元素
javascript吧
全部回复
仅看楼主
level 7
toolmaopx1624 楼主
今天遇到了这个问题,想到了几种解决的途径,但是还是觉得不是最好的方法。
所以来看大家有啥好方法没。
前提,不能用for循环嵌套、、
补充,两个数组的元素都为字符串

a=["111","222"....]
b=["11001","22222"....]
备注下我想到的方案是用indexOf判断。
2012年04月20日 09点04分 1
level 11
是要相同的还是不要相同的?
2012年04月20日 09点04分 2
挤挤2楼。我不想挖坟。但是今天有人给了我这样一个答案。var a=['111','222','333','4444','5','6','7','8','6','7','8','9'];[$1]alert(a.join(",").match( /([^,]+)(?!.*,\1(,|$))/ig));
2012年06月18日 05点06分
level 9
题目描述清楚。
两个数组,提取两个数组都有的字符串?
2012年04月20日 09点04分 3
level 7
toolmaopx1624 楼主
过滤掉相同的,也就是结果是一个数组不变,另一个数组过滤掉和那个不变的数组中相同的元素、
2012年04月20日 10点04分 4
level 7
toolmaopx1624 楼主
。。。貌似表达有些不好
过滤掉相同的,也就是结果是一个数组不变,另一个数组过滤掉和那个不变的数组中相同的元素、
2012年04月20日 10点04分 5
level 7
toolmaopx1624 楼主
吃饭去了,回来试试[啊!]
2012年04月20日 11点04分 7
level 9

var arr1=['abc','cba','bca'];
var arr2=['123','223','abc'];
var result={};
for(var i in arr1){
result[arr1[i]] = arr1[i];
}
for(var i in arr2){
delete result[arr2[i]];
}
2012年04月20日 15点04分 8
level 11
lz
说不让用循环
[揉脸]
其实递归也算是变相循环了,感觉lz说不清楚...
觉的不用循环就没法了.
2012年04月20日 16点04分 9
level 9
循环嵌套....
他指的是for(){for(){}}
2012年04月20日 16点04分 10
level 10
[汗] 弄了半天,你自己还是没想出来,跑来求助了。。
此楼正解。
2012年04月20日 16点04分 11
level 10
[揉脸]空间换时间的方法。
2012年04月20日 16点04分 12
level 11
好吧,
delete这个关键词我在js里面还没用过.
都是写=null 什么的
2012年04月20日 16点04分 13
level 9
var a=0;
delete a;
alert(a);
var a=0;
a=null;
alert(a);
2012年04月20日 16点04分 14
level 7
toolmaopx1624 楼主
delete、、、[啊!]
2012年04月21日 08点04分 15
level 7
toolmaopx1624 楼主
我也没用过,用过push和shift[汗]
2012年04月21日 08点04分 16
level 7
toolmaopx1624 楼主
我说的是不能嵌套循环,就是循环中循环啦、、那样元素多了会卡死、、[啊!]
2012年04月21日 08点04分 17
level 7
toolmaopx1624 楼主
嗯,貌似就是这个,构造出json然后再对比,当时想了那么久怎么就想不起来了,结果用了一个好麻烦的方法搞定的、、、[汗]
2012年04月21日 08点04分 18
level 9
学习了,原来object还可以这样用[抓墙]
2012年04月21日 09点04分 19
level 2
delete 是对 object 起作用?
第一个例子 a 是 number 所以 delete不起作用?
第二个列子 a 转化成object了 ?
2012年04月22日 15点04分 20
level 9

第一个例子 delete a后,a已经不存在了,所以alert(a)会提示,a没有被定义。
第二个列子 a=null,a这个变量还在存在的,只是他的值是null。。
2012年04月22日 15点04分 21
1 2 3 尾页