Javascript 如何正确使用“.reduce”来计算数组中的字符总数?

Javascript 如何正确使用“.reduce”来计算数组中的字符总数?,javascript,Javascript,我试图使用reduce来执行数组中元素的总字符计数,但我不知道如何正确地编写返回 这是我的尝试 function characterCount(array) { return array.reduce(function(array) { return array.reduce() }) } 这就是问题所在 describe('characterCount', () => { it('should sum the total number of character

我试图使用reduce来执行数组中元素的总字符计数,但我不知道如何正确地编写返回

这是我的尝试

function characterCount(array) {

  return array.reduce(function(array) {
    return array.reduce()

  })
}
这就是问题所在

describe('characterCount', () => {

  it('should sum the total number of characters in the array', () => {
    expect(characterCount(['Stay', 'hungry', 'stay', 'foolish'])).to.equal(21)

    expect(characterCount(['Where', 'is', 'the', 'stone'])).to.equal(15)

    expect(characterCount(['Pack', 'it', 'up', 'pack', 'it', 'in', 'let', 'me', 'begin'])).to.equal(26)

  })
})
任何帮助都将不胜感激。

函数字符计数(arr){
返回arr.reduce(函数(字符数,项目){
返回charCount+item.length;
},0);//0是初始数据。第一次传递时,charCount从0开始
}

log(characterCount(['Stay','hunger','Stay','dumby']);//21
使用reduce功能尝试以下操作:

const a=['Stay'、'hunger'、'Stay'、'dumby'];
const result=a.reduce((总和,元素)=>sum+ele.length,0);

控制台日志(结果)您应该使用reduce,使用接收中指定的预期值的回调来迭代数组

函数字符计数(数组){
返回数组.reduce((currentSum,nextWord)=>{
currentSum+=nextWord.length
返回电流和
}, 0)
}
var list=['Stay'、'hunger'、'Stay'、'dumby']

log(characterCount(list))
您这样做是为了学习吗?否则,我不会推荐这种方法。您可以在数组上执行
join(“”).length
来实现这一点。@RenanSouza使用
reduce
来完成这项工作没有什么错。它比您的
join(“”)
方法效率更高。您需要再次阅读并检查回调函数采用的参数。提示:它不是一个
数组
@Bergi一个是可读的,尽管两个选项之间的性能差异非常小,但我不认为
减少
然后求和+长度会比
加入
更快,两者都需要循环,
join
更简单。@RenanSouza区别在于
join
需要先在内存中创建一个(可能较大的)字符串
reduce()
只跟踪一个数字。