为了账号安全,请及时绑定邮箱和手机立即绑定

求给定字符串中可变数量数字的总和

求给定字符串中可变数量数字的总和

扬帆大鱼 2023-08-10 15:51:38
编写一个函数 add,它接受一个带有求和任务的字符串,并将其结果作为数字返回。应添加有限数量的自然数。求和任务是&ldquo;1+19+...+281&rdquo;形式的字符串。示例:add('7+12+100')应返回 119。我写的代码如下:function add (string) {   let partsArray = string.split("+");   let added = parseInt(partsArray[0]);         for (let i=0; i<=partsArray.length; i++) {      added = added + parseInt(partsArray[i]);   }   return added;}它返回 NaN。有什么想法如何解决这个问题吗?
查看完整描述

4 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

您超出了阵列范围。另外,当您开始从索引 0 开始查看数组时,您应该将添加的值初始化为 0。注意,我添加了一些 console.logs 来让您了解如何调试此类内容。


function add (string) {

   let partsArray = string.split("+");

   console.log("parts", partsArray);

   let added = 0;

      

   for (let i=0; i<partsArray.length; i++) {

      console.log("i",parseInt(partsArray[i]));

      added += parseInt(partsArray[i]);

   }


   return added;

}

如果添加<=后面并使用 console.logs 运行代码,您将在控制台中看到以下内容。请注意,<=您有 4 个索引,而不是预期的 3 个。这是因为大小为 3,但数组是从零开始索引的。当您使用时,<您会得到预期的答案。

https://img1.sycdn.imooc.com//64d497320001ea0a04300327.jpg

查看完整回答
反对 回复 2023-08-10
?
繁花如伊

TA贡献2012条经验 获得超12个赞

您还可以使用reduce方法:


function add(string) {

  return string.split('+').reduce((accumulator, currentValue) => accumulator + 

    parseInt(currentValue, 10),0)

}


查看完整回答
反对 回复 2023-08-10
?
侃侃无极

TA贡献2051条经验 获得超10个赞

如果您仍然想从第一个索引开始..您可以像下面这样做


function add (string) {

   let partsArray = string.split("+");

   let added = parseInt(partsArray[0]);   

   for (let i=1; i<partsArray.length; i++) {

      added += parseInt(partsArray[i]);

   }

   return added;

}


查看完整回答
反对 回复 2023-08-10
?
手掌心

TA贡献1942条经验 获得超3个赞

function add(given) 

  {

    

    let data=given.split('+');

    

    let nums=data.map(function(num){

        return parseInt(num)

    })

    

    let sum=0

    for(let i=0;i<nums.length;i++)

    {

        sum=sum+nums[i];

    }

    console.log( sum)

    

}

add('7+12+100')


查看完整回答
反对 回复 2023-08-10
  • 4 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信