我有以下问题:
编写一个函数,该函数接受单词列表,并返回一个对象,该对象告诉您每个字母出现的次数。
所以像这样:
var data = ['hat', 'cat', 'dog'];
变成:
var object = {
'a' : 2,
'h' : 1,
't' : 2,
'c' : 2,
'd' : 1,
'g' : 1
};
到目前为止我的解决方案是:
- 使用空白对象创建一个函数。
- 循环遍历数组的所有元素
这些步骤并不像我想象的那样有效:
- 尝试循环遍历每个数组元素的字符。
- 如果数组元素的字符在对象中未定义,则将其放入并递增到 1。否则,如果它已经存在,则再次将其加一。
我哪里出错了?还是我离得远了?
最佳答案
这就是您要搜索的内容:
// Function that you need.
function letterUsage(data) {
// Collector.
var result = {};
// Loop.
for (var i = 0; i < data.length; ++i) {
for (var j = 0; j < data[i].length; ++j) {
var letter = data[i][j];
if (result[letter]) {
result[letter] = result[letter] + 1;
} else {
result[letter] = 1;
}
}
}
return result;
}
// Prepare test.
var data = ['hat', 'cat', 'dog'];
var result = letterUsage(data);
// Print result.
console.log(result);
关于Javascript:循环遍历数组中元素的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37039091/