字符串相關

字符串去重:

思路:
1.創建一個新的數組存放結果
2.創建一個空對象
3.for循環時,每次取出一個元素與對象進行對比,如果這個元素不重複,則把它存放到結果數組中,同時把這個元素的內容作爲對象的一個屬性,並賦值爲1,存入到第2步建立的對象中。
說明:至於如何對比,就是每次從原數組中取出一個元素,然後到對象中去訪問這個屬性,如果能訪問到值,則說明重複。

代碼實現:

Array.prototype.unique3 = function(){
 var res = [];
 var json = {};
 for(var i = 0; i < this.length; i++){
  if(!json[this[i]]){
   res.push(this[i]);
   json[this[i]] = 1;
  }
 }
 return res;
}
var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];
alert(arr.unique3());  //112,34,你好,str,str1

除去字符串中的重

function dropRepeat(str){
 var result=[];
 var hash={};
 for(var i=0, elem; i<str.length;i++){
  elem=str[i];
  if(!hash[elem]){
   hash[elem]=true;
   result=result+elem;
  }
 }
 return  result;
}
alert(dropRepeat("ascddddaaarrfdrbcdd")); //ascdrfb;

:思路與上述一樣,在此就不過多重複。


查找一個字符串中所有子串的位置

  通過循環調用indexOf()或lastIndexOf()來找到所有匹配的子字符串。
  上面兩個方法都是從一個字符串中搜索給定的子字符串,然後返回子字符串的位置(如果沒有找到子字符串,則返回-1)。這兩個方法的區別在於:indexOf()方法從字符串的開頭向後搜索子字符串,而lastIndexOf()方法是從字符串的末尾向前搜索子字符串。
  這兩個方法都可以接收可選的第二個參數,表示從字符串中的那個位置開始搜索。換句話說,indexOf()會從該參數指定的位置向後搜索,忽略該位置之前的所有字符;lastIndexOf()類似。

思路:通過不斷增加indexOf()方法開始查找的位置,遍歷了一個長字符串。在循環之外,首先找到了”o”在字符串中的初始位置;而進入循環後,則每次都給indexOf()傳遞上一次的位置加1。這樣就確保了每次新搜索都從上一次找到的子字符串的後面開始。每次搜索返回的位置被保存在數組positions中,以便將來使用。

代碼實現:

var str = "I think of other ages that floated upon the stream of life and love and death";
function searchSubStr(str,subStr){
    var positions = new Array();  //定義數組存放位置
    var pos = str.indexOf(subStr); //返回首次位置
    while(pos>-1){
        positions.push(pos);
        pos = str.indexOf(subStr,pos+1);
    }
    return positions;
}
alert(searchSubStr(str,"o")); //8,11,29,37,51,64

在給定字符串中查找子子符串,並返回相應的位置,否則返回-1

代碼實現:

function indexOf(arr, item) {
    if( Array.prototype.indexOf){
        return arr.indexOf(item);
    }
   else{
      for(var i=0; i<arr.len; i++){
         if(item==arr[i]){
             return i;
          }  
       }   
    }
 return -1;
}

字符串壓縮

這裏寫圖片描述


字符串方法

Method 描述
charAt() 返回指定索引位置的字符
charCodeAt() 返回指定索引位置字符的 Unicode 值
concat() 連接兩個或多個字符串,返回連接後的字符串
fromCharCode() 將字符轉換爲 Unicode 值
indexOf() 返回字符串中檢索指定字符第一次出現的位置
lastIndexOf() 返回字符串中檢索指定字符最後一次出現的位置
localeCompare() 用本地特定的順序來比較兩個字符串
match() 找到一個或多個正則表達式的匹配
replace() 替換與正則表達式匹配的子串
search() 檢索與正則表達式相匹配的值
slice() 提取字符串的片斷,並在新的字符串中返回被提取的部分
split() 把字符串分割爲子字符串數組
substr() 從起始索引號提取字符串中指定數目的字符
substring() 提取字符串中兩個指定的索引號之間的字符
toLocaleLowerCase() 根據主機的語言環境把字符串轉換爲小寫,只有幾種語言(如土耳其語)具有地方特有的大小寫映射
toLocaleUpperCase() 根據主機的語言環境把字符串轉換爲大寫,只有幾種語言(如土耳其語)具有地方特有的大小寫映射
toLowerCase() 把字符串轉換爲小寫
toString() 返回字符串對象值
toUpperCase() 把字符串轉換爲大寫
trim() 移除字符串首尾空白
valueOf() 返回某個字符串對象的原始值

前端面試題鏈接:http://www.jobui.com/mianshiti/it/web/5066/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章