【问题标题】:Get length of word array using reduce and substring method使用 reduce 和 substring 方法获取单词数组的长度
【发布时间】:2022-11-23 09:04:46
【问题描述】:

我试图在不考虑单词的最后两个位置的情况下获取字符数。

我有以下数组:

let arrayWords = ["comput3r-9", "b0dywork-7", "e4rth-1"];

但是当对第一个词使用reduce和substring方法时:"comput3r-9",该方法不适用

let arrayWords = ["comput3r-9", "b0dywork-7", "e4rth-1"];
let getTotalCharacters = (x) => x.reduce(
    (prev, curr) => (prev + curr.substring(0, curr.length-2))
);

console.log(getTotalCharacters(arrayWords).length);

【问题讨论】:

  • 您没有为 reduce 设置起始值,因此它使用第一个索引。阅读 reduce 的文档。

标签: javascript substring reduce


【解决方案1】:

您忘记为累加器添加初始值。这里应该是一个空字符串:

let arrayWords = ["comput3r-9", "b0dywork-7", "e4rth-1"];
let getTotalCharacters = (x) => x.reduce(
  (prev, curr) => (prev + curr.substring(0, curr.length - 2)),
  "",
);

console.log(getTotalCharacters(arrayWords).length);

如果您不传递初始值,则累加器将从第一个元素的值开始,回调将跳过第一个元素,这就是它不处理示例中第一个元素的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多