Javascript 计算字符在字符串中出现的次数并将其存储在数组中

Javascript 计算字符在字符串中出现的次数并将其存储在数组中,javascript,arrays,string,count,character,Javascript,Arrays,String,Count,Character,我一直在尝试计算一个字符在字符串中出现的次数,并将其存储在另一个变量中,该变量将保存该字符以及该字符在字符串中出现的次数 例如: var greeting = "Hello World"; [H] 发生[1]次 [e] 发生[1]次 [l] 发生[3]次 [o] 发生[2]次 [W] 发生[1]次 [r] 发生[1]次 [d] 发生[1]次 我是一名JS初学者,我尽可能多地遵循指南和教程,但这个练习似乎超出了我的能力范围。如果你们能继续解决这个问题,我将不胜感激 谢谢 您基本上希望创建一组映射

我一直在尝试计算一个字符在字符串中出现的次数,并将其存储在另一个变量中,该变量将保存该字符以及该字符在字符串中出现的次数

例如:

var greeting = "Hello World";
[H] 发生[1]次

[e] 发生[1]次

[l] 发生[3]次

[o] 发生[2]次

[W] 发生[1]次

[r] 发生[1]次

[d] 发生[1]次

我是一名JS初学者,我尽可能多地遵循指南和教程,但这个练习似乎超出了我的能力范围。如果你们能继续解决这个问题,我将不胜感激


谢谢

您基本上希望创建一组映射到字符串中其计数的字符集。将这些东西存储在数组中可能会很奇怪,因为您需要二维数组。而是将其存储在哈希对象中

var greeting = "Hello world!";

var hash = {};
for(var i = 0; i < greeting.length; i++){
  if(hash[greeting[i]] === undefined){
    hash[greeting[i]] = 1;
  } else {
    hash[greeting[i]] += 1;
  }
}

// printing the stuff in hash.
for(var x in hash){
  if(hash.hasOwnProperty(x)){
    console.log(x, hash[x]);
  }
}
var greeting=“你好,世界!”;
var hash={};
for(变量i=0;i
不管怎样,如果您需要数组中的这些东西,您可以这样放置:

var arr = [];
var i = 0;
for(var x in hash){
  if(hash.hasOwnProperty(x)){
    arr[i++] = [x, hash[x]];
  }
}

for(var i = 0; i< arr.length; i++){
  console.log(arr[i]);
}
var arr=[];
var i=0;
for(散列中的变量x){
if(hash.hasOwnProperty(x)){
arr[i++]=[x,散列[x]];
}
}
对于(变量i=0;i
但我不推荐。您可以自己看到冗余。

尝试以下方法:

var result = {};

Array.prototype.map.call('Hello world!', function(x) {
  if (typeof result[x] == 'undefined') {
    result[x] = 1;
  } else {
    result[x] += 1;    
  }
});
console.log(result);
var result={};
Array.prototype.map.call('helloworld!'),函数(x){
if(结果类型[x]=“未定义”){
结果[x]=1;
}否则{
结果[x]+=1;
}
});
控制台日志(结果)可能重复,请参阅