本文實例講述了JavaScrip數組去重操作。分享給大家供大家參考,具體如下:
內置的for-of方法
<script>var arr=[2,1,1,3,'','','e','e',true,'true',true,false,false,'false',undefined,'undefined',undefined,null,'null',null];function uniqueUseForOf(array) { const temp = []; //一個臨時數組 // 傳入值必須存在,且長度小于等于1的時候直接返回數組 if (array && array.length <= 1) { return array; } else { //遍歷當前數組 for (let x of array) { temp.indexOf(x) === -1 ? temp.push(x) : ''; } } return temp;}uniqueUseForOf(arr);console.log(uniqueUseForOf(arr))</script>
運行結果:
內置的forEach方法
<script>var arr=[3,1,1,3,'','','e','e',true,'true',true,false,false,'false',undefined,'undefined',undefined,null,'null',null];function uniqueUseForEach(array) { // 傳入值必須存在,且長度小于等于1的時候直接返回數組 if (array && array.length <= 1) { return array; } else { var temp = []; //一個臨時數組 //遍歷當前數組 array.forEach(function (value, index) { temp.indexOf(value) == -1 ? temp.push(value) : ''; }) return temp; }}uniqueUseForEach(arr);console.log(uniqueUseForEach(arr))</script>
運行結果:
萬能的for方法
<script>var arr=[1,1,'','','e','e',true,'true',true,false,false,'false',undefined,'undefined',undefined,null,'null',null];function uniqueUseFor(array) { var temp = []; //一個臨時數組 //遍歷當前數組 for (var i = 0, j = array.length; i < j; i++) { //很直白,新數組內判斷是否有這個值,沒有的情況下,就推入該新數組 temp.indexOf(array[i]) === -1 ? temp.push(array[i]) : ''; } return temp;}uniqueUseFor(arr);console.log(uniqueUseFor(arr))</script>
運行結果:
第一種方法:
<script>var arr = [1, 2, 3, 4, 1, 2, 4, 5, 6];console.log(arr);Array.prototype.unique = function() { var n = [this[0]]; //結果數組 for(var i = 1; i < this.length; i++) //從第二項開始遍歷 { //如果當前數組的第i項在當前數組中第一次出現的位置不是i, //那么表示第i項是重復的,忽略掉。否則存入結果數組 if(this.indexOf(this[i]) == i) n.push(this[i]); } return n;};console.log(arr.unique());</script>
第二種方法:
<script>var arr = [1,2,3,4,1,2,4,5,6];console.log(arr);Array.prototype.unique = function(){ var n = {}, r = []; //n為hash表,r為臨時數組 for (var i = 0; i < this.length; i++) { //遍歷當前數組 if (!n[this[i]]) { //如果hash表中沒有當前項 n[this[i]] = true; //存入hash表 r.push(this[i]); //把當前數組的當前項push到臨時數組里面 } } return r;};console.log(arr.unique());</script>
第三種方法:
<script>var arr = [1,2,3,4,1,2,4,5,6];console.log(arr);Array.prototype.unique = function() { var n = []; //一個新的臨時數組 for (var i = 0; i < this.length; i++) //遍歷當前數組 { //如果當前數組的第i已經保存進了臨時數組,那么跳過, //否則把當前項push到臨時數組里面 if (n.indexOf(this[i]) == -1) n.push(this[i]); } return n;};console.log(arr.unique());</script>
上述三種方法運行結果為:
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答