首页 > 解决方案 > JavaScript 中的任务

问题描述

我需要使用whilefor由数字符号的总和组成的数字序列。

例如,我有一个从 1 到 10 的序列。在控制台中(如果我已经编写了代码)将只有 1、2、3、4、5、6、7、8、9、1。如果我在控制台中从 30 到 40 将是 3,4,5,6,7,8,9,10,11,12,13。

我需要创建一个代码来显示从 1 到 100 的总和。我不知道该怎么做,但在控制台中我需要查看:

1
2
3
4
5
5
6
7
8
9
1
2
3
4

等等

我有一些代码,但我只有 NaN。我不知道为什么。你能给我解释一下吗?

for (let i = '1'; i <= 99; i++) { 
    let a = Number(i[0]);
    let b = Number(i[1])
    let b1 = Boolean(b)

    if (b1 == false) {
        console.log ('b false', a)
    }
    else {
        console.log ('b true', a + b)
    }
}

我希望你明白我在说什么。

标签: javascripttask

解决方案


尽管我喜欢接受的答案,但是从问题中我了解到您在问别的问题,那就是;

30 become 3+0=3
31 become 3+1=4
37 becomes 3+7=10

为什么我们要检查布尔值超出了问题的范围

这是简单的 snnipet 完全符合您的要求

for (let i = 30; i <= 40; i++) {
  let x=i.toString();
console.log( 'numbers from ' +i + ' are added together to become '+ (Number(x[0])+Number((x[1])||0)))
 }

er 所做的正是 Maskin 所说的,以 for 循环开头,然后在每个增量中将其转换为字符串,以便我们可以拆分它,这可以解决 NAN 问题。您不需要调用字符串,只需像在 let x 中那样执行一次,然后只需将拆分称为 x[0] 等等。

在第二个数字内,我们创建了一个自计算 (x[1])||0),即如果没有第二个值,则为零。以下会像魅力一样工作

for (let i = 1; i <= 10; i++) {
  let x=i.toString();
console.log( 'numbers from ' +i + ' are added together to become '+ (Number(x[0])+Number((x[1])||0)))
 }
你有没有观察到十

这是我真正的问题和解决方案,如果您不知道数字的长度或出于什么原因您要从 100 岁开始盯着看怎么办。我们需要在代码中加入某种形式的 AI

for (let i = 110; i <= 120; i++) {
let x= Array.from(String(i), Number);

console.log(
x.reduce(function(a, b){ return a + b;})
);
};

您只需使用 Array.from 函数创建一个数组,然后使用简单的 Array.reduce 函数运行自定义函数,将所有值加起来为总和,最后在控制台中运行。

不错,简单,人工智能


推荐阅读