繁体   English   中英

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

[英]how to iterate through strings to dynamically add to Hash Map in javascript?

我对此并不陌生,但我正在做以下示例: https : //www.hackerrank.com/challenges/ctci-ransom-note/problem
如果有一个字符串集合,这些字符串用来自STDIN的空格分隔,则如何将它们添加到Map()中。 我知道如何遍历数组并将这些值添加到映射中,但是如何遍历非数组?

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

var array = collectionOfStrings.split(" ");

如果有一个字符串集合,这些字符串用来自STDIN的空格分隔,则如何将它们添加到Map()中。

分割输入字符串,然后reduceMap ,如下所示:

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

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

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

匹配单个空格字符,包括空格,制表符,换页符,换行符。 等效于[\\ f \\ n \\ r \\ t \\ 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+/)); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM