JS中数组以及字串相关的操作方法

81 阅读1分钟

选出字符串中出现频率最高的字母

      var str = 'dasdafdasftrdhsdgrfergasfsgjghkjgf';
      let sArr = str.split('');
      sArr = [...new Set(sArr)];
      let cArr = [];
      sArr.forEach((item) => {
      //正则表达式
        let re = eval(`/${item}/ig`);
        let o = { s: item, count: 0 };
        //按正则表达式来匹配,将匹配到的字符串放入一个数组
        o.count = str.match(re).length;
        cArr.push(o);
      });
      cArr.sort((a, b) => {
        return b.count - a.count;
      });
      //防止有出现个数相等的情况
      let maxCount = cArr[0].count;
      let fArr = cArr.filter((item) => {
        return item.count == maxCount;
      });
      console.log(fArr);

js中数组排序

	Array.prototype.mySrot = function(){
    	var newarr = this
        //插入法排序,那数组的前一项和后一项比,如果前面一项小于后面一项,则将两者互换,从数组的第一个元素开始对比
        for(let i = 0; i < newarr.length;i++){
        	for(let j = 0;j< newarr.length-1; j++){
            if(newarr[j] > newarr[j+1]){
            	let pre = newarr[j]
                newarr[j] = newarr[j+1]
                newarr[j+1] = pre
            }
            }
        }
        return newarr
    }