Javascript 仅使用reduce的数组中出现的计数字符串未读取最后一个值

Javascript 仅使用reduce的数组中出现的计数字符串未读取最后一个值,javascript,reduce,Javascript,Reduce,我会制作一个程序来减少数组中字符串出现的次数 我应该只使用它 这是我的节目 function countWords(inputWords) { let obj={}; inputWords.reduce((curr,next )=> { obj[curr]=0; inputWords.reduce((current,next2)=> { if(curr===current) { obj[curr]++; }

我会制作一个程序来减少数组中字符串出现的次数

我应该只使用它

这是我的节目

function countWords(inputWords) {
  let obj={};
  inputWords.reduce((curr,next )=> {
     obj[curr]=0;
    inputWords.reduce((current,next2)=> {
      if(curr===current) {
        obj[curr]++;
      }
      return next2
    });
    return next;
  })
  return obj
}
我的结果是什么

我的结果:{实习:1,非:1,irure:1,COMODO:3,velit: 官方:1,奉献:4,劳工:2,东部:2,阿利基普:1, 例外:1,消费:1,麦格纳:1,身份证:1,艾乌斯莫德:1,威尼斯:1, 动物:1,乌拉姆科:1,精英:2,无主:1,丘比特:2,冒失:1, 洛勒姆:公元1年,奎斯:公元1年,多洛尔:公元1年,奥卡卡特:公元1年,阿利夸:公元1年,时间: 1,do:1,dolor:1,labore:1}

预期:

预期结果:{实习:1,非:1,irure:1,commodo:3, 维利特:2,官方:1,奉献:4,劳工:2,东部:2,阿利基普:1, 例外:1,消费:1,麦格纳:1,身份证:1,艾乌斯莫德:1,威尼斯:1, 动物:1,乌拉姆科:1,精英:2,无主:1,丘比特:2,冒失:1, 洛勒姆:公元1年,奎斯:公元1年,多洛尔:公元1年,奥卡卡特:公元1年,阿利夸:公元1年,时间: 1,do:1,dolor:1,labore:1,amet:1}

以下是输入文字:

输入:[‘实习’、‘非’、‘irure’、‘commodo’、‘velit’、‘officia’, “Concertetur”、“commodo”、“laboris”、“est”、“aliquip”、“excepteur”, “consequat”、“concetetur”、“magna”、“id”、“eiusmod”、“veniam”, ‘阿尼姆’、‘康塞泰图’、‘乌拉姆科’、‘艾利特’、‘努拉’、‘丘比特’, “proident”、“commodo”、“laboris”、“est”、“lorem”、“Concertetur”, ‘elit’、‘ad’、‘quis’、‘dolore’、‘occaecat’、‘aliqua’、‘Cupidata’, ‘临时’、‘做’、‘多洛’、‘维利特’、‘劳工’、‘阿米特’]


可能不需要在另一个reduce方法中使用reduce。 在对象中,检查键是否存在,如果不存在,则在对象中创建键,否则将其值更新为1

让输入=[‘实习’、‘非’、‘伊鲁尔’、‘康姆多’、‘维利特’、‘官方’、‘康姆多’、‘劳工’、‘est’、‘阿利奎普’、‘例外’、‘康斯奎特’、‘康斯奎特’、‘康斯奎特’、‘康斯奎特’、‘康斯泰特’、‘麦格纳’、‘id’、‘艾乌拉姆科’、‘艾利特’、‘艾利特’、‘阿奎特’、‘阿奎斯特’、‘d“奥洛尔”、“奥卡卡特”、“阿利夸”、“丘比特”、“临时”、“杜”、“多洛”、“维利特”、“劳工”、“艾米特”]
让结果=输入。减少(功能(acc,curr){
如果(!acc.hasOwnProperty(curr)){
acc[curr]=1;
}否则{
acc[curr]+=1;
}
返回acc;
}, {})

console.log(result)
可能不需要在另一个reduce方法中使用reduce。 在对象中,检查键是否存在,如果不存在,则在对象中创建键,否则将其值更新为1

让输入=[‘实习’、‘非’、‘伊鲁尔’、‘康姆多’、‘维利特’、‘官方’、‘康姆多’、‘劳工’、‘est’、‘阿利奎普’、‘例外’、‘康斯奎特’、‘康斯奎特’、‘康斯奎特’、‘康斯奎特’、‘康斯泰特’、‘麦格纳’、‘id’、‘艾乌拉姆科’、‘艾利特’、‘艾利特’、‘阿奎特’、‘阿奎斯特’、‘d“奥洛尔”、“奥卡卡特”、“阿利夸”、“丘比特”、“临时”、“杜”、“多洛”、“维利特”、“劳工”、“艾米特”]
让结果=输入。减少(功能(acc,curr){
如果(!acc.hasOwnProperty(curr)){
acc[curr]=1;
}否则{
acc[curr]+=1;
}
返回acc;
}, {})

console.log(result)
您应该始终返回包含reducer中频率的对象。初始对象可以是
数组的第二个参数。reduce

所以,这里有一条给你的单行线:

(()=>{
常量输入=[‘实习’、‘非’、‘irure’、‘commodo’、‘velit’、‘officia’,
“Concertetur”、“commodo”、“laboris”、“est”、“aliquip”、“excepteur”、“consequat”,
“康塞特图尔”、“麦格纳”、“id”、“eiusmod”、“威尼斯”、“动漫”、“康塞特图尔”,
‘ullamco’、‘elit’、‘nulla’、‘Cupidata’、‘proident’、‘Comodo’、‘laboris’、‘est’、‘est’,
“lorem”、“Concertetur”、“elit”、“ad”、“quis”、“dolore”、“occaecat”、“aliqua”,
“cupidatat”、“tempor”、“do”、“dolor”、“velit”、“labore”、“amet”];
log(input.reduce((f,v)=>f中的v?(f[v]+=1,f):(f[v]=1,f),{});
/*也可以写为:
输入.减少((频率,值)=>{
if(频率[值]){
//频率包含值键,因此递增
频率[值]+=1;
}否则{
//向频率添加值并初始化([值]=1)
频率[值]=1;
}
//返回现在更新的频率对象以供进一步使用
返回频率;
}, {});
//^初始频率对象
*/

})();
您应该始终返回包含减速机内频率的对象。初始对象可以是
数组的第二个参数。减速机

所以,这里有一条给你的单行线:

(()=>{
常量输入=[‘实习’、‘非’、‘irure’、‘commodo’、‘velit’、‘officia’,
“Concertetur”、“commodo”、“laboris”、“est”、“aliquip”、“excepteur”、“consequat”,
“康塞特图尔”、“麦格纳”、“id”、“eiusmod”、“威尼斯”、“动漫”、“康塞特图尔”,
‘ullamco’、‘elit’、‘nulla’、‘Cupidata’、‘proident’、‘Comodo’、‘laboris’、‘est’、‘est’,
“lorem”、“Concertetur”、“elit”、“ad”、“quis”、“dolore”、“occaecat”、“aliqua”,
“cupidatat”、“tempor”、“do”、“dolor”、“velit”、“labore”、“amet”];
log(input.reduce((f,v)=>f中的v?(f[v]+=1,f):(f[v]=1,f),{});
/*也可以写为:
输入.减少((频率,值)=>{
if(频率[值]){
//频率包含值键,因此递增
频率[值]+=1;
}否则{
//向频率添加值并初始化([值]=1)
频率[值]=1;
}
//返回现在更新的频率对象以供进一步使用
返回频率;
}, {});
//^初始频率对象
*/

})();
你没有正确地使用
减少
。看到这个了吗。你没有正确地使用
减少
。看到这个了吗