尝试使用reducer函数将一个数组中的所有值添加到JS中的另一个数组中

泰勒莫拉莱斯

编辑:我发现了问题:我没有考虑到 3 和 5 的倍数匹配时!关于如何消除重复数字的任何提示?

我正在尝试解决来自免费代码营的欧拉问题的第一个问题:3 和 5 的倍数https://learn.freecodecamp.org/coding-interview-prep/project-euler/problem-1-multiples-of -3-5

问题是这样的:在提供的参数值编号下找到所有 3 或 5 的倍数的总和。

当我查看我的代码时,它适用于 10 的情况,但不适用于其他任何情况。我看过了,尝试了另一种选择,但找不到问题。这是我所做的。

我的思考过程和当前任务的执行

  1. 循环列出所有数字,直到参数编号
  2. 做了两个 while 循环,一个是 3 的倍数,一个是 5 的倍数
  3. 在每个 while 循环中,我想不断添加乘数(3 或 5),直到 num 小于 3 或 5 的总和,我必须添加 +3 和 +5,这样总数组中的最后一个数字就不会超过 num

  4. 然后我取了总数组并实现了reduce函数来得到三五总和的总和

注意:我能够获得一组值。在 10 的情况下,我得到 [3, 6, 9, 5]

我的代码

function multiplesOf3and5(num) {
    let total = [];
    let threes = 0;
    let fives = 0;
    const reducer = (accumulator, currentValue) => accumulator + currentValue;

    for (let i = 1; i < num; i++) {
        while (num > threes+3) {
            //total.push(threes);
            threes += 3;
            total.push(threes)
        }
        while (num > fives+5) {
            //total.push(fives);
            fives += 5;
            total.push(fives)
        }
    }
    total = total.reduce(reducer);
    return total;
}
console.log(multiplesOf3and5(10))
console.log(multiplesOf3and5(49))
console.log(multiplesOf3and5(1000))

我试图解决的问题:

- 尝试在每个 while 循环中单独求和以获得 3 到 num 的所有倍数的总和,第二个 while 循环相同

- 我通过添加两个数组来做到这一点,total1 和 total 分别代表三和五的总和。

测试用例:

multiplesOf3and5(1000) 应该返回 233168。(我得到 266333)

multiplesOf3and5(49) 应该返回 543。(我得到 633)

multiplesOf3and5(10) 应该返回 23。(我得到 23)

您当前的解决方案可以通过消除两个数组(存储倍数的数组)中的重复项来修复。但是,它仍然是实现您想要的非常迂回的方式。从您的问题陈述中,我不明白为什么您需要存储倍数,然后按照您选择的方式获取总和。

由于您无论如何都要遍历 1 和您的参数之间的所有整数,因此您可以在遇到它们时立即将它们添加到总和中:

let sum = 0
for (let i = 1; i < num; i++) {
    if (i % 3 == 0 || i % 5 == 0) {
        sum += i
    }
}

也就是说,除非您有特定的原因选择以这种方式解决问题,但您没有说明。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将一个数组中的值添加到另一个数组?

来自分类Dev

将值添加到另一个数组中的数组

来自分类Dev

将数组中的值添加到php中具有相同ID的另一个数组

来自分类Dev

是否可以将一个数组添加到另一个数组中

来自分类Dev

根据mongodb中另一个数组字段的值将数组字段添加到集合中

来自分类Dev

将键添加到多个数组,并使用另一个有序数组中的相应值按顺序填充该键的值

来自分类Dev

将键添加到多个数组,并使用另一个有序数组中的相应值按顺序填充该键的值

来自分类Dev

使用codeigniter中的键值将数组添加到另一个数组中

来自分类Dev

有条件地将数组作为变量添加到另一个数组中

来自分类Dev

如何使用ParallelStream将一个数组的每个元素添加到另一个数组的相应元素中?

来自分类Dev

如何在Javascript中将一个数组添加到另一个数组中?

来自分类Dev

将数组中的一个值组合到另一个数组的所有值 php

来自分类Dev

检查一个数组中的所有值是否在另一个数组中

来自分类Dev

如何将一个数组添加到存在于mongodb对象中的另一个数组中

来自分类Dev

将字段值从一个数组添加到另一个数组(php)

来自分类Dev

将值从一个数组添加到另一个数组

来自分类Dev

如何将一个数组添加到另一个数组以创建一个数组数组。(JS)

来自分类Dev

比较两个数组,然后再在JavaScript中将一个数组中的项添加到另一个数组中

来自分类Dev

如果给定键的值匹配,则将一个数组元素添加到另一个数组中

来自分类Dev

如何将新数组添加到另一个数组的特定对象中

来自分类Dev

将匹配的对象添加到另一个数组时,从数组中删除它们

来自分类Dev

PHP将数组元素添加到另一个数组中的每个元素

来自分类Dev

将匹配的对象添加到另一个数组时,从数组中删除它们

来自分类Dev

如何设置基于一个数组中的值选中的复选框并将值添加到另一个数组(如果选中),否则使用angular js删除?

来自分类Dev

将一个数组推入另一个数组将覆盖第二个数组中的所有元素

来自分类Dev

从数组中动态删除n个元素,然后添加到另一个数组中

来自分类Dev

使用一个数组中的所有值与C#中另一个数组中的值匹配的数组来创建一个数组

来自分类Dev

如何将随机数组的值添加到另一个数组中,然后在计算出现的值的同时显示它们?C ++

来自分类Dev

如何将随机数组的值添加到另一个数组中,然后在计算出现的值的同时显示它们?C ++

Related 相关文章

  1. 1

    如何将一个数组中的值添加到另一个数组?

  2. 2

    将值添加到另一个数组中的数组

  3. 3

    将数组中的值添加到php中具有相同ID的另一个数组

  4. 4

    是否可以将一个数组添加到另一个数组中

  5. 5

    根据mongodb中另一个数组字段的值将数组字段添加到集合中

  6. 6

    将键添加到多个数组,并使用另一个有序数组中的相应值按顺序填充该键的值

  7. 7

    将键添加到多个数组,并使用另一个有序数组中的相应值按顺序填充该键的值

  8. 8

    使用codeigniter中的键值将数组添加到另一个数组中

  9. 9

    有条件地将数组作为变量添加到另一个数组中

  10. 10

    如何使用ParallelStream将一个数组的每个元素添加到另一个数组的相应元素中?

  11. 11

    如何在Javascript中将一个数组添加到另一个数组中?

  12. 12

    将数组中的一个值组合到另一个数组的所有值 php

  13. 13

    检查一个数组中的所有值是否在另一个数组中

  14. 14

    如何将一个数组添加到存在于mongodb对象中的另一个数组中

  15. 15

    将字段值从一个数组添加到另一个数组(php)

  16. 16

    将值从一个数组添加到另一个数组

  17. 17

    如何将一个数组添加到另一个数组以创建一个数组数组。(JS)

  18. 18

    比较两个数组,然后再在JavaScript中将一个数组中的项添加到另一个数组中

  19. 19

    如果给定键的值匹配,则将一个数组元素添加到另一个数组中

  20. 20

    如何将新数组添加到另一个数组的特定对象中

  21. 21

    将匹配的对象添加到另一个数组时,从数组中删除它们

  22. 22

    PHP将数组元素添加到另一个数组中的每个元素

  23. 23

    将匹配的对象添加到另一个数组时,从数组中删除它们

  24. 24

    如何设置基于一个数组中的值选中的复选框并将值添加到另一个数组(如果选中),否则使用angular js删除?

  25. 25

    将一个数组推入另一个数组将覆盖第二个数组中的所有元素

  26. 26

    从数组中动态删除n个元素,然后添加到另一个数组中

  27. 27

    使用一个数组中的所有值与C#中另一个数组中的值匹配的数组来创建一个数组

  28. 28

    如何将随机数组的值添加到另一个数组中,然后在计算出现的值的同时显示它们?C ++

  29. 29

    如何将随机数组的值添加到另一个数组中,然后在计算出现的值的同时显示它们?C ++

热门标签

归档