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