问题描述
编写一个函数,该函数接受一个由一个或多个空格分隔的单词组成的字符串,并返回一个显示不同大小单词数量的对象。单词由任意序列的非空格字符组成。
这是我目前所拥有的
const strFrequency = function (stringArr) {
return stringArr.reduce((count,num) => {
count [num] = (count[num] || 0) + 1;
return count;
},{})
}
let names = ["Hello world it's a nice day"];
console.log(strFrequency(names)); // { 'Hello world it\'s a nice day': 1 } I need help splitting the strings
解决方法
处理:检查它是否是无效输入然后返回空白对象,否则通过将其拆分为单词然后添加到状态对象中的相同长度的数组中来处理它。 希望这就是您要找的!
const str = "Hello world it's a nice day";
function getOccurenceBasedOnLength(str = ''){
if(!str){
return {};
}
return str.split(' ').reduce((acc,v)=>{
acc[v.length] = acc[v.length] ? [...acc[v.length],v] : [v];
return acc;
},{});
}
console.log(getOccurenceBasedOnLength(str));
输出
{
'1': [ 'a' ],'3': [ 'day' ],'4': [ "it's",'nice' ],'5': [ 'Hello','world' ]
}