Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找字符串javascript中最常用的字符_Javascript_String - Fatal编程技术网

查找字符串javascript中最常用的字符

查找字符串javascript中最常用的字符,javascript,string,Javascript,String,假设我有以下字符串“355385”。我需要一个简单的JavaScript,可以告诉我,最提到的字符是5。先谢谢你 我试过这个,但没有结果 var exp = '355385' ; var exps =exp.split(""); var expCounts = { }; for (var i=0;i<exp.length;i++) {expCounts["_" + exps[i]] = (expCounts["_" + exps[i]] || 0) + 1 ; if (expCo

假设我有以下字符串“355385”。我需要一个简单的JavaScript,可以告诉我,最提到的字符是5。先谢谢你

我试过这个,但没有结果

var exp = '355385' ;

var exps =exp.split("");

var expCounts = { };

for (var i=0;i<exp.length;i++)

{expCounts["_" + exps[i]] = (expCounts["_" + exps[i]] || 0) + 1 ;

if (expCounts==3) exps=exps[i]; }; exps;
var exp='355385';
var exps=exp.split(“”);
var expCounts={};

对于(var i=0;i这将循环字符串中的每个字符,并跟踪每个字符的计数和最大计数的字符:

var exp = '3553853335' ;
var expCounts = {};
var maxKey = '';
for(var i = 0; i < exp.length; i++)
{
    var key = exp[i];
    if(!expCounts[key]){
     expCounts[key] = 0;
    }
    expCounts[key]++;
    if(maxKey == '' || expCounts[key] > expCounts[maxKey]){
        maxKey = key;
    }
}

console.debug(maxKey + ":" + expCounts[maxKey]);
输出
1:4 |-:4 | a:4

var string=“355385”,
var string  = "355385",
    counter = {};

for (var i = 0, len = string.length; i < len; i += 1) {
    counter[string[i]] = (counter[string[i]] || 0) + 1;
}

var biggest = -1, number;
for (var key in counter) {
    if (counter[key] > biggest) {
        biggest = counter[key];
        number = key;
    }
}

console.log(number);
# 5
计数器={}; 对于(变量i=0,len=string.length;i最大值){ 最大=计数器[键]; 数字=键; } } 控制台日志(编号); # 5
日志

在相同的情况下,它将返回第一个数字

getMax('3553') //3;
var exp='355385';
var findMostFrequent=函数(字符串){
var chars={},first=string.charAt(0);
字符[第一]=1;
var maxChar=first,maxCount=1;
对于(变量i=1;imaxCount){
maxChar=char;
}
}
返回maxChar;
};
这是另一种(奇怪的)方式 它将当前字符替换为空白,以检查字符串中存在多少次,从而使长度与原始模式不同

var str = "355385";
var mostLength = 0;
var characterMostLength;
for(t = 0; t< 10; t++)
{
    var res = str.length - str.replace(new RegExp(t, "g"), "").length;
    if (res > mostLength){
        characterMostLength = t;
        mostLength = res;
    }
}
var str=“355385”;
var mostLength=0;
var特征长度;
对于(t=0;t<10;t++)
{
var res=str.length-str.replace(新的RegExp(t,“g”),“”)。length;
如果(分辨率>最大长度){
characterMostLength=t;
mostlelength=res;
}
}
以下是:

let str = '355385';
function mostFrequentCharacter(str) {
        let charactersArr = str.split(''),
            bins = {};

        charactersArr.map(el => bins[el] = (bins[el] || 0) + 1); 
    return Object.keys(bins).map(key => ({
            name: key,
          count: bins[key]
    })).sort((a, b) => b.count - a.count)[0];
}

无标题文件
你好,世界!我是胡里奥

var string=document.getElementById(“myString”).innerHTML; var mrcharacter=mostRepetedCharacter(字符串); document.getElementById(“mRCharacter”).innerHTML=mRCharacter; 控制台日志(mrcharacter); 函数mostRepetedCharacter(字符串){ var mrcharacter=“”; var strLength=string.length; var i=0; var计数=0; var max=0; var rest=strLength-1; 而(i
另一种解决方案

function maxChar(str) {

        const charMap = {};
        let max = 0;
        let maxChar = '';

        for(let char of str){
            if(charMap[char]){
                charMap[char]++;
            }else{
                charMap[char] = 1;
            }
        }

        for(let char in charMap){
            if(charMap[char] > max){
                max = charMap[char];
                maxChar = char;
            }
        }

        return maxChar; 
}
结果:

 maxChar('355385') 
  "5"

您可以使用以下解决方案查找字符串中最常用的字符:

function getMostRepeatedCharacter(string) {
    return string.split('').reduce((acc,char)=>{
        let len = string.split(char).length - 1;
        return len > acc[1] ? [char,len] : acc
    },['',0])[0]
}

getMostRepeatedCharacter('wediuaududddd') // d

希望共享此ES6功能方法。请提供您的输入

function maxChar(myStr) {
  let charObj = {};
  return [...myStr].reduce((_, char) => {
    if (char in charObj) charObj[char]++;
    else if (char !== " ") charObj[char] = 1;
    return Object.keys(charObj).reduce((a, b) => {
      return charObj[a] > charObj[b] ? a : b;
    });
  });
}

另一种方法是将字符串排序频率映射中最频繁的字符放入数组,然后从该数组返回第一个(最大)值:

function highest (string) {
  let array = Array.from(string);
  let frequencyMap = {};
  array.forEach((value, index) => {
    if (!frequencyMap[value]) {
      frequencyMap[value] = 0;
    }
    frequencyMap[value] += 1;
  })
  let frequencyArray = Object.entries(frequencyMap);
  frequencyArray.sort((a, b) => {
    if (a[1] < b[1]) {
      return 1;
      }
    if (a[1] > b[1]) {
      return -1;
      }
      return 0;
    });
  return(frequencyArray[0][0]);
}

console.log(highest("hello World"));
函数最高值(字符串){
让array=array.from(字符串);
设frequencyMap={};
array.forEach((值,索引)=>{
如果(!frequencyMap[value]){
frequencyMap[值]=0;
}
frequencyMap[值]+=1;
})
让frequencyArray=Object.entries(frequencyMap);
frequencyArray.sort((a,b)=>{
if(a[1]b[1]){
返回-1;
}
返回0;
});
返回(frequencyArray[0][0]);
}
log(最高的(“hello World”);
返回“l”


这是一个简单的想法,只包含一次hashmap传递。唯一做不到的是处理多个最大值。我真的希望您喜欢我的解决方案:)


查找字符串中出现的最大字符数的最简单方法

var arr = "5255522322";
    var freq:any = {};
    var num;
    for(let i=0;i<arr.length;i++) {
      num = arr[i];
    freq[num] = freq[num] >= 1 ? freq[num] + 1 : 1;
    }
    var sortable:any = [];
    for(let i in freq)
    {
      sortable.push(i);   
    }
    var max = freq[sortable[0]];
     var data:any = "";
   var value = sortable[0];
    for(let i=0;i<sortable.length;i++) {

      if(max > freq[sortable[i]]){
        data = "key" + value + " " + "value" + max;
      }else{
        value = sortable[i]
        max = freq[sortable[i]];
      }
    }

    console.log(data);
var arr=“5255522322”;
var freq:any={};
var-num;
对于(设i=0;i=1?频率[num]+1:1;
}
var可排序:any=[];
用于(让我输入频率)
{
可排序推送(i);
}
var max=freq[sortable[0]];
var数据:any=“”;
var值=可排序的[0];
for(设i=0;i freq[sortable[i]]){
data=“key”+value++“value”+最大值;
}否则{
值=可排序的[i]
max=freq[sortable[i]];
}
}
控制台日志(数据);
函数maxChara(字符串){
charMap={};
maxNum=0;
maxChar=“”;
string.toString().split(“”).forEach(项=>{
if(字符映射[项目]){
字符映射[项目]+;
}否则{
charMap[项目]=1;
}
});
for(让char在charMap中){
if(charMap[char]>maxNum){
maxNum=charMap[char];
maxChar=char;
}
}
返回maxChar;
}
让结果=maxChara(355385);

上面的答案都没有考虑到JavaScript在内部使用UTF-16


const s=“此处str将显示需要验证的字符串

function maxCharacter(str){

let str1 = str; let reptCharsCount=0; let ele='';let maxCount=0;
let charArr = str1.split('');
for(let i=0; i< str1.length; i++){
    reptCharsCount=0;
    for(let j=0; j< str1.length; j++){
        if(str1[i] === str1[j]) {
            reptCharsCount++;
        }
    }

    if(reptCharsCount > maxCount) {
        ele = str1[i];
        maxCount = reptCharsCount; 
    }
}
return ele;
函数maxCharacter(str){
让str1=str;让reptCharsCount=0;让ele='';让maxCount=0;
设charArr=str1.split(“”);
for(设i=0;imaxCount){
ele=str1[i];
maxCount=reptCharsCount;
}
}
返回ele;
}

输入

maxCharacter('asdefddsdfseddssdfsdnknmwlqweeeeeseeeseeeseeee')

输出


“s”

这个问题的另一个答案是:

为此,我认为角色可以是除空格以外的任何类型

function findHighestFreqInString(str) {
    if (!str) return null
    let cleanedStr = str.replace(/\s/g, '') //assumes no spaces needed
    if (cleanedStr.length === 0) return null
    let strObj = {}
    let topChar = ''
    for (let val of cleanedStr) {
        strObj[val] = (strObj[val] || 0) + 1
        if (topChar === '' || strObj[val] >= strObj[topChar]) topChar = val
    }
    return topChar
}
以下是您将如何使用它:

findHighestFreqInString('my name is Someone') // returns: e
findHighestFreqInString('') // returns: Null
findHighestFreqInString('    ') // returns: Null
constmaxchar=(str)=>{
设obj={};
for(str的let char){
(!ob
function maxChar(myStr) {
  let charObj = {};
  return [...myStr].reduce((_, char) => {
    if (char in charObj) charObj[char]++;
    else if (char !== " ") charObj[char] = 1;
    return Object.keys(charObj).reduce((a, b) => {
      return charObj[a] > charObj[b] ? a : b;
    });
  });
}
function highest (string) {
  let array = Array.from(string);
  let frequencyMap = {};
  array.forEach((value, index) => {
    if (!frequencyMap[value]) {
      frequencyMap[value] = 0;
    }
    frequencyMap[value] += 1;
  })
  let frequencyArray = Object.entries(frequencyMap);
  frequencyArray.sort((a, b) => {
    if (a[1] < b[1]) {
      return 1;
      }
    if (a[1] > b[1]) {
      return -1;
      }
      return 0;
    });
  return(frequencyArray[0][0]);
}

console.log(highest("hello World"));
function maxChar(str) {
    //Create the output and the hashmap
    let m = {}, ans

    //Loop through the str for each character
    //Use reduce array helper because of the accumulator

    str.split('').reduce((a, c) => {

        //Increments Map at location c(character) unless it does not already exist

        m[c] = m[c] + 1|| 1

        //This checks to see if the current passthrough of m[c] is greater than or equal to the accumulator, if it is, set the answer equal to the current character. If it's not keep the ans the same.

        ans = m[c] >= a ? c : ans

        //Only increment the accumulator if Map at location c(character) is greater than the accumulator. Make sure to return it otherwise it won't increment.

        return a = m[c] > a ? a + 1 : a
    }, 1)

    //Lastly return the answer
    return ans
}
var arr = "5255522322";
    var freq:any = {};
    var num;
    for(let i=0;i<arr.length;i++) {
      num = arr[i];
    freq[num] = freq[num] >= 1 ? freq[num] + 1 : 1;
    }
    var sortable:any = [];
    for(let i in freq)
    {
      sortable.push(i);   
    }
    var max = freq[sortable[0]];
     var data:any = "";
   var value = sortable[0];
    for(let i=0;i<sortable.length;i++) {

      if(max > freq[sortable[i]]){
        data = "key" + value + " " + "value" + max;
      }else{
        value = sortable[i]
        max = freq[sortable[i]];
      }
    }

    console.log(data);
function maxCharacter(str){

let str1 = str; let reptCharsCount=0; let ele='';let maxCount=0;
let charArr = str1.split('');
for(let i=0; i< str1.length; i++){
    reptCharsCount=0;
    for(let j=0; j< str1.length; j++){
        if(str1[i] === str1[j]) {
            reptCharsCount++;
        }
    }

    if(reptCharsCount > maxCount) {
        ele = str1[i];
        maxCount = reptCharsCount; 
    }
}
return ele;
function findHighestFreqInString(str) {
    if (!str) return null
    let cleanedStr = str.replace(/\s/g, '') //assumes no spaces needed
    if (cleanedStr.length === 0) return null
    let strObj = {}
    let topChar = ''
    for (let val of cleanedStr) {
        strObj[val] = (strObj[val] || 0) + 1
        if (topChar === '' || strObj[val] >= strObj[topChar]) topChar = val
    }
    return topChar
}
findHighestFreqInString('my name is Someone') // returns: e
findHighestFreqInString('') // returns: Null
findHighestFreqInString('    ') // returns: Null
function freq(str) {
        var freqObj = {};
        str.forEach((item) => {
            if (freqObj[item]) {
                freqObj[item]++;
            }
            else {
                freqObj[item] = 1;
            }

        });
        return freqObj;


    }
    function findmaxstr(str) {
        let max = 0,res,freqObj;
        freqObj = freq(str.split(""));
        for(let keys in freqObj){
            if (freqObj[keys] > max) {
                max = freqObj[keys];
                res = keys;
            }
        }
        console.log(res);
        return res;
    }



findmaxstr("javasdasdsssssscript");