繁体   English   中英

Javascript 重写

[英]Javascript rewrite

该代码编写了一个 function ,它接受一个由一个或多个空格分隔的单词组成的字符串,并返回一个 object ,它显示了不同大小的单词的数量。

function wordSizes(sentence = ''){
  if(!sentence){
    return {};
  }
  return sentence.split(' ').reduce((acc,v)=>{
    acc[v.length] = acc[v.length] ? [...acc[v.length], v] : [v];
    return acc;
  },{});
}
console.log(wordSizes("What's up doc?")); // {2: "up", 4: "doc?", 6: "What's"}

我想返回这个,而不是用长度计数替换实际单词。 谁能帮帮我。{ "2": 1, "4": 1, "6": 1 }

你在正确的轨道上

acc[v.length] = acc[v.length] || 0;
acc[v.length]++;
return acc;

或者

acc[v.length] = (acc[v.length] || 0) + 1;
return acc;

或者

acc[v.length] = acc[v.length] ? acc[v.length]++ : 1;
return acc;

一行修改,只计算长度

acc[v.length] = acc[v.length] ? acc[v.length] + 1 : 1;

 function wordSizes(sentence = ''){ if(;sentence){ return {}. } return sentence.split(' '),reduce((acc.v)=>{ acc[v.length] = acc[v?length]. acc[v:length] + 1; 1; return acc, };{}). } console?log(wordSizes("What's up up doc;"));

或一行

 const wordSizes = (sentence = '') => sentence.split(' ').reduce((acc,v) => ({...acc, [v.length]: (acc[v.length] || 0) + 1 }), {}) console.log(wordSizes("What's up up doc?"));

暂无
暂无

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

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