我正在学习JavaScript,我正在尝试解决一个练习,在这个练习中,我必须用我名字的字母创建一个数组,然后使用Map存储每个值的值和出现的次数。
我一直在阅读有关 Map 的信息,我想我应该从类似的东西开始检查数组是否有重复,但我是一个新手,我没有找到很多 Map 示例,所以我不知道我在做什么......
var myMap = new Map([[1, "M"], [2, "a"], [3, "r"], [4, "y"]]);
for (i = 1; i < 5; i++) {
console.log(myMap.has (i));
console.log(myMap.get (i));
}
谢谢!
var nameArray = Array.from("mary")
console.log(nameArray)
var map = new Map()
nameArray.forEach(function(character) {
if (map.has(character)) {
map.set(character, map.get(character) + 1)
} else {
map.set(character, 1)
}
});
console.log(map);
我已经为您的练习更新了您的代码,请参阅这些文档以获取映射和数组 API:
- 地图
- 数组
如果您有任何问题,请发表评论。
从这样开始:
var myName = ['M', 'a', 'r', 'y'];
var letterFrequencyMap = new Map();
for (var i = 0; i < myName.length; i++) {
// Your logic to update letterFrequencyMap
}
console.log(letterFrequencyMap);
你可以从一个空地图开始,然后用
map.get(letters[i])
或者,如果重新调整了错误值,则取零。然后添加一个并设置新值。
var string = 'annabelle',
letters = string.split(''),
map = new Map,
i, l;
for (i = 0, l = letters.length; i < l; ++i) {
map.set(letters[i], (map.get(letters[i]) || 0) + 1);
}
map.forEach((v, k) => console.log(k, v));
简短版本
var string = 'annabelle',
map = string
.split('')
.reduce((map, char) => map.set(char, (map.get(char) || 0) + 1), new Map);
map.forEach((v, k) => console.log(k, v));