我正在解决一个问题,要求获取字符串 string
并返回一个新字符串,其中 string
中 2 个最常见的字母以交替顺序排列。
我的代码:
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)
返回的arr
长度为0,我不明白,所以我不能用它做任何事情。我尝试将其放入对象中,但仍然存在相同的问题。如何让 arr
等于键:值对,然后找到 2 个最高的 值
并将它们按交替顺序将 键
添加到字符串中。我的代码是否朝着正确的方向前进?
最佳答案
如果将数组更改为对象,它就会起作用:
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)
在 JavaScript 中,数组 ([]
) 不包含键值对(嗯,有点:索引可以说是键)。您要查找的数据结构是一个普通对象 ({}
),它可以保存键值对。
编辑
只是为了添加一点说明,您可以将成员添加到数组 ([]
) 中,但数组长度将为 0。这是我在 Chrome 中的浏览器控制台的输出,您可以在其中可以看到您可以将成员添加到数组本身。但不推荐这种方法。
关于javascript - 如何使用 javascript 找到字符串中最常见的 2 个字母并返回一个新字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40493860/