js去除陣列的重複元素和去除陣列中相鄰的重複元素
阿新 • • 發佈:2019-02-03
//去除陣列的重複元素 Array.prototype.distinct = function(){ var $ = this; var o1 = {}; var o2 = {}; var o3 = []; var o; for(var i=0;o = $[i];i++){ if(o in o1){ if(!(o in o2)) o2[o] = o; delete $[i]; }else{ o1[o] = o; } } $.length = 0; for(o in o1){ $.push(o); } for(o in o2){ o3.push(o); } return o3; } var obj = {}; var o1 = obj, o2 = obj , o3 = {}; //假設變數o1,o2指向同一物件obj, o3為一新物件; var a = [2,3,3,4,4,4,4,5,6,'a','a','a','b','a','b','c',o1,o2,o3]; alert("原陣列:" + a); alert("有重複的元素是:" + a.distinct()); alert("整理後的陣列是:" + a); alert("整理後的長度是:" + a.length)
// 去除陣列中相鄰的重複元素 Array.prototype.distinctCloseTo = function() { var $ = this; var o3 = new Array(); var t = 0 for (var i = 0; i < $.length; i++) { if ($[i] != $[i - 1]) { o3[t] = $[i]; t++; } } $.length = 0; for (var j = 0; j < o3.length; j++) { $[j] = o3[j]; } return o3; } var obj = {}; var o1 = obj, o2 = obj, o3 = {}; // 假設變數o1,o2指向同一物件obj, o3為一新物件; var a = [2, 3, 3, 4, 4, 4, 4, 5, 6, 'a', 'a', 'a', 'b', 'a', 'b', 'c', o1, o2,o3]; alert("原陣列:" + a); alert("整理後的陣列是:" + a.distinctCloseTo()); alert("整理後的長度是:" + a.length)