Javascript 如何正确使用“.reduce”来计算数组中的字符总数?
我试图使用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
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()
只跟踪一个数字。