使用出现的javascript计算字长

问题描述

编写一个函数,该函数接受一个一个或多个空格分隔的单词组成的字符串,并返回一个显示不同大小单词数量的对象。单词由任意序列的非空格字符组成。

这是我目前所拥有的

  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' ]
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...