使用 Map 存储数组值和重复次数



我正在学习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:

  1. 地图
  2. 数组

如果您有任何问题,请发表评论。

从这样开始:

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));

最新更新