我正在尝试使用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)
})
})
任何帮助将不胜感激。
答案 0 :(得分:2)
function characterCount(arr) {
return arr.reduce(function(charCount, item) {
return charCount + item.length;
}, 0); // 0 is the initial data. charCount starts at 0 on first pass
}
console.log(characterCount(['Stay', 'hungry', 'stay', 'foolish'])); // 21
答案 1 :(得分:1)
尝试使用reduce函数:
const a= ['Stay', 'hungry', 'stay', 'foolish'];
const result = a.reduce((sum,ele) => sum + ele.length, 0);
console.log(result);
或其他类似的解决方案:
const a= ['Stay', 'hungry', 'stay', 'foolish'];
const result = a.join('').length;
console.log(result);
答案 2 :(得分:0)
您应该使用reduce来通过回调来迭代数组,该回调接收Array reduce()中指定的期望值
function characterCount(array) {
return array.reduce((currentSum, nextWord) => {
currentSum += nextWord.length
return currentSum
}, 0)
}
var list = ['Stay', 'hungry', 'stay', 'foolish']
console.log(characterCount(list))