function removeTheSame(arr1, arr2) { var flags = {}, temp = arr1.concat(arr2), result = []; for (var i = 0, len = temp.length; i < len; i++) { if (!flags[temp[i]]) { result.push(temp[i]); flags[temp[i]] = true; } } return result; }
function removeTheSame(arr1, arr2) { var flags = {}, temp = arr1.concat(arr2), result = []; for (var i = 0, len = temp.length; i < len; i++) { if (!flags[temp[i]]) { result.push(temp[i]); flags[temp[i]] = true; } } return result; }不好意思,刚刚忘了用代码格式发
flag = false;
function get(arr1, arr2){
for(var i = 0; i < arr1.length; i++){
for(var j = 0; j < arr2.length; j++){
if(arr1[i] == arr2[j]){
flag = true;
break;
}
}
if(flag){
flag = false;
}else{
arr3.push(arr1[i]);
}
}
}
<script>
function removeSame(arr1,arr2){
if(arr1==null||arr1.length==0) return [];
if(arr2==null||arr2.length==0) return arr1;
var obj = new Object();
for(var i=0;i<arr2.length;i++){
eval("obj.pro"+arr2[i]+"='"+arr2[i]+"';");
}
var arr3 = new Array();
for(var i=0;i<arr1.length;i++){
if(eval("typeof obj.pro"+arr1[i]+"=='undefined'")){
arr3.push(arr1[i]);
}
}
return arr3;
}alert(removeSame([1,2,3],[2]));//[1,3]
alert(removeSame([1,2,3],[2,3]));//[1]
alert(removeSame([1,2,3],[]));//[1,2,3]
alert(removeSame([],[2]));//[]
</script>
利用对象属性可以直接set和get属性值(比如:obj.a='a';var a = obj.a;),避开数组元素的遍历
从而避开二重循环
alert([2]==[2]);//false这里前提就是字符串或者数值
var flags = {}, temp = arr1.concat(arr2), result = [];
for (var i = 0, len = temp.length; i < len; i++) {
if (!flags[temp[i]]) {
result.push(temp[i]);
flags[temp[i]] = true;
}
}
return result;
}
var flags = {}, temp = arr1.concat(arr2), result = [];
for (var i = 0, len = temp.length; i < len; i++) {
if (!flags[temp[i]]) {
result.push(temp[i]);
flags[temp[i]] = true;
}
}
return result;
}不好意思,刚刚忘了用代码格式发
alert(removeSame(['yy','zz','xx'],['yy']));//['zz','xx']