字符串去掉重複的字符+計算字符串中出現過的字符及其次數

例:查找字符串"abcoefoxyozzopp"中出現過的字符。

function isAppear(str) { //去掉重複的字符
  var newStr = "";
  for (var i = 0; i < str.length; i++) {
    if (newStr.indexOf(str.charAt(i) === -1) {
      newStr += str.charAt(i);
    }
  }
  return newStr;
}
//調用函數
console.log(isAppear("oabcoefoxyozzopp"));

例:查找字符串"abcoefoxyozzopp"中出現過的字符所有出現的位置以及次數。  

function appearTimes(str, find) { //計算字符出現的次數
  var newArr = [];
  var i = 0;
  while (str.indexOf(find, i) !== -1) {
    newArr.push(str.indexOf(find, i));
    i = str.indexOf(find, i) + 1;
  }
  return newArr;
}

function isAppear(str) { //去掉重複的字符
  var newStr = "";
  for (var i = 0; i < str.length; i++) {
    if (newStr.indexOf(str.charAt(i) === -1) {
      newStr += str.charAt(i);
    }
  }
  return newStr;
}

var newStr = isAppear("oabcoefoxyozzopp");
for (var i = 0; i < newStr.length; i++) {//遍歷每一個出現過的字符
 //打印字符、字符在字符串中出現的位置,字符在字符串出現的次數
  var chars = appearTimes(str, (newStr.charAt(i)));
  console.log(newStr.charAt(i), chars, chars.length);
}

 例:查找字符串"abcoefoxyozzopp"中出現過的字符所有的次數。 【最推薦的】

//利用對象存儲字符並統計字符個數
function appearStr(str){
  var obj = {};
  for (var i = 0; i < str.length; i++) {
    var char = str.charAt(i);
    if(obj[char]){
      obj[char]++;
    }else{
      obj[char] = 1;
    }
  }
  return obj;
}
//調用函數
console.log(appearStr('abcoefoxyozzopp'));

今日心得:個人很喜歡用函數將計算過程過程封裝起來,既不會和其他代碼混淆,看起來非常整潔好看。方便寫項目的時候調用。 

 

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