如何正确利用`.reduce`来计算数组中字符的总数?

时间:2019-06-20 21:26:35

标签: javascript

我正在尝试使用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)

  })
})

任何帮助将不胜感激。

3 个答案:

答案 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))