1、前言
2、陣列去重
方法1:使用hash的方法解決該問題
2.1.1 初次寫出的**array.prototype.unique = function(), result ,i, len = arr.length;for(i=0 ; i
這是我第一次寫的**,咋一看沒什麼問題,但是請看下面這個例子
var a = ['a','b','a','c',3,5,8,3,'8']a.unique() // ['a','b','c',3,5,8]
但是我們期望的結果是什麼呢?自然是['a','b','c',3,5,8,'8'],至於什麼原因大家都明白。下面是當時我寫的很2的方法:
2.1.2 第一次修bugarray.prototype.unique= function(), obj2 = {}, result = , i , len = arr.length;for(i=0; i< len; i++)
}else }}
return result;
} var a = ['a','b','a','c',3,5,8,3,'8']
var b = a.unique(); //['a','b','c',3,5,8,'8']
iq太低,上面的**太土,太2,現在想想看還有沒有其他辦法。
2.1.3 第二次修bugarray.prototype.unique= function(), result = , i , len = arr.length;for(i=0; i< len; i++)
} return result;
}var a = ['a','b','a','c',3,5,8,3,'8'];
var b = a.unique(); // ['a','b','c',3,5,8,'8']
接下來問題來了,假如存在這樣的陣列 var a = ['a','b','a','c',3,5,8,3,'8',8];你媽這又出現問題了,結果為['a','b','c',3,5,8,'8',8],那就都存起來:
2.1.4 第三次修bugif(!array.prototype.indexof)} return -1; }}
array.prototype.unique= function(), result = , i , len = arr.length;
for(i=0; i< len; i++)
} return result;
}var a = ['a','b','a','c',3,5,8,3,'8',8];
var b = a.unique(); // ['a','b','c',3,5,8,'8'] 到目前為止應該不會出現bug了
方法2:使用indexof方法或者lastindexof方法
這個方法需要考慮到低版本的瀏覽器是不知道indexof屬性的,所以使用前非常有必要寫下相容性的**:
if(!array.prototype.indexof)} return -1; }}
array.prototype.unique= function(), result = , i , len = arr.length , n;
for(i=0; i< len; i++)
} return arr;
}var a = ['a','b','a','c',3,5,8,3,'8',8];
var b = a.unique(); //['a','b','c',3,5,8,'8']
現在想出來的也就這兩種方法了。
字串去重
字串去重,思路是在乙個字串例如 strstrrtsiiiinnnggggg 中,遍歷所有的字元,拼接到stringbuffer中。在執行速度上來看stringbuffer的拼接速度要快與string。通過str.charat i 的方法得到當前遍歷到的字元。通過indexof方法得到該字元第一次出現...
字串去重
doctype html en utf 8 viewport content width device width,initial scale 1.0 document title head 思路 1.宣告乙個空字元 2.將需要去重字元,乙個乙個新增到空字串中 條件 s裡面沒有這個字元,就加進去 v...
字串右旋 字串去重
1.將n個字元的陣列,迴圈右移k位。時間複雜度o n 實現思路 兩種實現思路 1.借助輔助空間,按照後面的順序進行拷貝,最後拷貝回字串 2.三次反轉法就可實現 include void rotatekth char str,int size,int k 2.附加題 刪除小寫字母字串中重複字元。如果可...