Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_Loops - Fatal编程技术网

如何找到字符串中最常见的两个字母,并使用javascript返回一个新字符串

如何找到字符串中最常见的两个字母,并使用javascript返回一个新字符串,javascript,string,loops,Javascript,String,Loops,我正在处理一个问题,要求获取一个字符串string,然后以交替顺序返回一个新字符串,其中包含字符串中最常见的两个字母 我的代码: var word = "pponoomababaaa"; var len = word.length; function twoLetters (word){ var arr = [] word = word.split("") for (var i = 0; i < word.length; i++){ if ((arr[word[i]])) arr

我正在处理一个问题,要求获取一个字符串
string
,然后以交替顺序返回一个新字符串,其中包含
字符串中最常见的两个字母

我的代码:

var word = "pponoomababaaa";
var len = word.length;

function twoLetters (word){
var arr = []
word = word.split("")
for (var i = 0; i < word.length; i++){
    if ((arr[word[i]])) arr[word[i]] += 1
    else arr[word[i]] = 1
  }
return arr  // [ p: 2, o: 3, n: 1, m: 1, a: 5, b: 2 ]
}
twoLetters(word)
var word=“pponomababaaa”;
var len=单词长度;
函数两个字母(word){
var arr=[]
word=word.split(“”)
for(变量i=0;i

这个返回的
arr
的长度为0,我不理解,因此我无法真正使用它。我试着把它放进一个物体,但它仍然有同样的问题。如何使
arr
等于一个key:value对,然后找到两个最高的
值,并将
键按交替顺序添加到字符串中。我的代码方向正确吗?

如果您将数组更改为对象,它会起作用:

var word = "pponoomababaaa";
var len = word.length;

function twoLetters (word){
  var arr = {}
  word = word.split("")
  for (var i = 0; i < word.length; i++){
    if ((arr[word[i]])) arr[word[i]] += 1
    else arr[word[i]] = 1
  }
  return arr  // { p: 2, o: 3, n: 1, m: 1, a: 5, b: 2 }
}

twoLetters(word)
var word=“pponomababaaa”;
var len=单词长度;
函数两个字母(word){
var arr={}
word=word.split(“”)
for(变量i=0;i
在JavaScript中,数组(
[]
)不包含键值对(可以说,索引就是键)。您正在寻找的数据结构是一个普通对象(
{}
),它可以保存键值对

编辑

只需补充一点说明,您可以将成员添加到数组中(
[]
),但数组长度将为0。这是我的Chrome浏览器控制台的输出,您可以看到可以将成员添加到阵列本身。但是,不建议使用这种方法


如果将数组更改为一个对象,它将起作用:

var word = "pponoomababaaa";
var len = word.length;

function twoLetters (word){
  var arr = {}
  word = word.split("")
  for (var i = 0; i < word.length; i++){
    if ((arr[word[i]])) arr[word[i]] += 1
    else arr[word[i]] = 1
  }
  return arr  // { p: 2, o: 3, n: 1, m: 1, a: 5, b: 2 }
}

twoLetters(word)
var word=“pponomababaaa”;
var len=单词长度;
函数两个字母(word){
var arr={}
word=word.split(“”)
for(变量i=0;i
在JavaScript中,数组(
[]
)不包含键值对(可以说,索引就是键)。您正在寻找的数据结构是一个普通对象(
{}
),它可以保存键值对

编辑

只需补充一点说明,您可以将成员添加到数组中(
[]
),但数组长度将为0。这是我的Chrome浏览器控制台的输出,您可以看到可以将成员添加到阵列本身。但是,不建议使用这种方法


这是更新后的代码,它将
arr
作为对象(
{}
)而不是数组(
[]

var word=“pponomababaaa”;
var len=单词长度;
函数两个字母(word){
var arr={};
word=word.split(“”)
for(变量i=0;iconsole.log(两个字母(word))
这是更新后的代码,它将
arr
作为对象(
{}
)而不是数组(
[]

var word=“pponomababaaa”;
var len=单词长度;
函数两个字母(word){
var arr={};
word=word.split(“”)
for(变量i=0;i
var word=“pponomababaaa”;
var len=单词长度;
函数两个字母(word){
var arr=[]
word=word.split(“”)
for(变量i=0;i
您不是在创建数组,而是在创建对象。它确实有一个键:值对,正如您将在控制台.log(arr.p)中看到的那样
要使它成为一个数组,您需要将
推入arr.

var word=“pponomabaaa”;
var len=单词长度;
函数两个字母(word){
var arr=[]
word=word.split(“”)
for(变量i=0;i
您不是在创建数组,而是在创建对象。它确实有一个key:value对,正如您将在
console.log(arr.p)
中看到的那样,要使它成为一个数组,您需要
推入arr。

您可以使用它

var myMap=newmap();
var word=“pponomababaaa”;
var chars=单词分割(“”);
chars.forEach(函数(char){
如果(!myMap.get(char)){
myMap.set(char,1);
}否则{
var count=myMap.get(char);
计数+=1;
myMap.set(char,count);
}
});
for(myMap.entries()的var[key,value]{
console.log(键+“=”+值);
}
//如果要复制到新阵列
var newarr=Array.from(myMap);
控制台日志(newarr)您可以为此使用

var myMap=newmap();
var word=“pponomababaaa”;
var chars=单词分割(“”);
chars.forEach(函数(char){
如果(!myMap.get(char)){
myMap.set(char,1);
}否则{
var count=myMap.get(char);
计数+=1;
myMap.set(char,count);
}
});
for(myMap.entries()的var[key,value]{
console.log(键+“=”+值);
}
//如果要复制到新阵列
var newarr=Array.from(myMap);

控制台日志(newarr)使用
{}
,而不是
[]
。您的
arr
不是空的。在您的
arr
中设置键后,它变成了一个对象。请告诉我们什么起作用