本文實例講述了JS實現的合并多個數組去重算法。分享給大家供大家參考,具體如下:
var arr1 = ['a','b'];var arr2 = ['a','c','d'];var arr3 = [1,'d',undefined,true,null];//合并兩個數組,去重var concat_ = function(arr1,arr2){ //不要直接使用var arr = arr1,這樣arr只是arr1的一個引用,兩者的修改會互相影響 var arr = arr1.concat(); //或者使用slice()復制,var arr = arr1.slice(0) for(var i=0;i<arr2.length;i++){ arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0; } return arr;}console.log(concat_(arr1,arr2));
運行結果:
var arr1 = ['a','b'];var arr2 = ['a','c','d'];var arr3 = [1,'d',undefined,true,null];//合并多個數組,去重var concat = function(arr1,arr2,arr3){ if(arguments.length <= 1){ return false; } var concat_ = function(arr1,arr2){ var arr = arr1.concat(); for(var i=0;i<arr2.length;i++){ arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0; } return arr; } var result = concat_(arr1,arr2); for(var i=2;i<arguments.length;i++){ result = concat_(result,arguments[i]); } return result;}console.log(concat(arr1,arr2,arr3));
運行結果:
//合并多個數組,去重,排序var arr1 = [1,6,4,0];var arr2 = [8,20,7,4.5];var arr3 = [6,0,7,90,2];var concat = function(arr1,arr2,arr3){ if(arguments.length <= 1){ return false; } var concat_ = function(arr1,arr2){ var arr = arr1.concat(); for(var i=0;i<arr2.length;i++){ arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0; } return arr; } var result = concat_(arr1,arr2); for(var i=2;i<arguments.length;i++){ result = concat_(result,arguments[i]); } //排序 function sortNumber(a,b){ return a - b; } return result.sort(sortNumber);}console.log(concat(arr1,arr2,arr3));
運行結果:
PS:這里再為大家提供幾款相關工具供大家參考使用:
在線去除重復項工具:
http://tools.VeVB.COm/code/quchong
在線文本去重復工具:
http://tools.VeVB.COm/aideddesign/txt_quchong
在線動畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.VeVB.COm/aideddesign/paixu_ys
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數組操作技巧總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript排序算法總結》、《JavaScript數學運算用法總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答