如何遍历字符串以动态添加到javascript中的哈希映射?

时间:2018-04-03 03:57:10

标签: javascript arrays hashmap

我是半新人,但我这样做:https://www.hackerrank.com/challenges/ctci-ransom-note/problem 如果有来自STDIN的空格分隔的字符串集合,我将如何将它们添加到Map()中。我知道如何遍历数组并将这些值添加到地图但是如何迭代非数组?

3 个答案:

答案 0 :(得分:0)

首先将字符串集合拆分为数组

var array = collectionOfStrings.split(" ");

答案 1 :(得分:0)

  

如果有来自STDIN的空格分隔的字符串集合,我该如何将它们添加到Map()。

将输入字符串拆分,然后将reduce拆分为Map,如下所示:



const input = 'aa bb cc bb aa';
const allWords = input.split(' ');
const wordsMap = allWords.reduce((accumMap, word) => {
  const wordCount = accumMap.get(word) || 0;
  accumMap.set(word, wordCount + 1);
  return accumMap;
}, new Map());
console.log(wordsMap.get('aa') + '\n\n');

// Iterate through them with:
for ([word, wordCount] of wordsMap.entries()){
  console.log([word, wordCount]);
}




答案 2 :(得分:0)

你需要String.split()字符串。

要捕获所有空格(空格,换行符,制表符等等),请使用带有\s (white spaces)的正则表达式:

  

匹配单个空格字符,包括空格,制表符,表单   饲料,换行。相当于 [   \˚F\ n \ r \吨符\ v \ u00a0 \ u1680 \ u2000- \ u200a \ u2028 \ u2029 \ u202f \ u205f \ U3000 \ ufeff]。

示例:



const txt = `give me one grand today night
give one grand today`

console.log(txt.split(/\s+/));