[Java教程]比较新旧两个数组值得增加和删除
0 2013-10-29 17:00:04 以前项目中用到自己写的,应该没有bug吧,有更好的也欢迎大家指教,
1 var Return_AddStrFn=function (oldArr, newArr) { 2 var t = this;
//去重复的方法 3 Array.prototype.unique4 = function () { 4 // this = arr; 5 var temp = new Array(); 6 this.sort(); 7 for (i = 0; i < this.length; i++) { 8 if (this[i] == this[i + 1]) { 9 continue;10 }11 temp[temp.length] = this[i];12 }13 return temp;14 }15 var a = d = oldArr.unique4(); //旧数组16 var b = e = newArr.unique4();//新数组17 var c = [];18 var dels = [];19 function f() {20 a.sort();21 b.sort();22 var i = 0;23 var j = 0;24 while (i < a.length && j < b.length) {25 if (a[i] < b[j]) {26 c.push(a[i]);27 i++;28 } else if (b[j] < a[i]) {29 c.push(b[j]);30 j++;31 } else {32 i++;33 j++;34 }35 }36 while (i < a.length) {37 c.push(a[i]);38 i++;39 }40 while (j < b.length) {41 c.push(b[j]);42 j++;43 }44 }45 f();46 //alert("c:" + c);47 //alert("d:" + d);48 var addstr = [];49 for (var i = 0; i < c.length; i++) {50 for (var j = 0; j < e.length; j++) {51 if (e[j] == c[i]) {52 addstr.push(e[j]);53 }54 }55 }56 return addstr; //新增的57 //for (var i = 0; i < c.length; i++) {58 // for (var j = 0; j < d.length; j++) {59 // if (d[j] == c[i]) {60 // dels.push(d[j]);61 // }62 // }63 //}64 //alert("dels:" + dels); //删除的65 }
调用方式: var arr = [1, 2,2,3, 3, 4, 5];
var arr2=[1,2,5]
var addStr=Return_AddStrFn(arr2,arr);
本文网址:http://www.shaoqun.com/a/73956.html
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。
0