查找字符串javascript中最常用的字符
假设我有以下字符串“355385”。我需要一个简单的JavaScript,可以告诉我,最提到的字符是5。先谢谢你 我试过这个,但没有结果查找字符串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
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");