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

所有偶数之和的函数

所有偶数之和的函数

喵喵时光机 2022-09-16 21:39:47
我想创建一个函数,它将任何数字和字符的字符串作为一个参数。任务是找到所有偶数(数字)并将它们相加,然后在控制台中显示总值。例如,如果以下字符串作为一个参数(“112,sf34,4)-k)”传递给此函数,则结果应为:所有偶数之和:10到目前为止,我已经提出了解决方案并在此之后解决。帮帮我。提前致谢。function functionFive(str) {    const string = [...str].map(char => {        const numberString = char.match(/^\d+$/)        if (numberString !== null){            const number = parseInt(numberString)            return number        }    const num = string.map(number=>{        if (number !== undefined && number%2 === 0){             console.log(number)        }    })}functionFive("sau213e89q8e7ey1")
查看完整描述

6 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

这会有帮助吗?


function sumEven(s) {

  return s.split('').map(x=>+x).filter(x=>x%2==0).reduce((a,b)=>a+b)

}


console.log(sumEven('idsv366f4386523ec64qe35c'))


查看完整回答
反对 回复 2022-09-16
?
偶然的你

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

以下代码可帮助您实现最小循环


function sumEven(s) {

  return s

    .split("")

    .filter(x => x % 2 === 0)

    .reduce((acc, val) => acc + Number(val), 0);

}


console.log(sumEven("112,sf34,4)-k)"));


查看完整回答
反对 回复 2022-09-16
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

我只是用正则表达式搜索所有偶数个位数,除了零(因为它不会对总和有贡献)并求和结果数组,即


const functionFive = str => (str.match(/2|4|6|8/g) || [])

  .reduce((sum, num) => sum + parseInt(num, 10), 0)


console.info(functionFive("sau213e89q8e7ey1"))


查看完整回答
反对 回复 2022-09-16
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

试试这个:


   function functionFive(str){

     return  str.split('')

            .filter((el)=> !isNaN(el) && el % 2 === 0)

            .reduce((acc,cur)=> parseInt(acc) + parseInt(cur));

          }

       console.log(functionFive("112,sf34,4)-k"))


查看完整回答
反对 回复 2022-09-16
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

获得结果的单线解决方案。希望这有帮助


let text = "2543sadadfh7896";

let evenNums = text.match(/\d+/g);

let result = evenNums!== null ? evenNums.join().split('').filter(i => i%2 ===0).reduce((a, b) => Number(a) + Number(b)) : 0;


console.log(result)


查看完整回答
反对 回复 2022-09-16
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

使用正则表达式


const functionFive = str => (str.match(/\d/g)||[]).reduce((a,b)=>a=parseFloat(a)+(parseFloat(b)%2==0?parseFloat(b):0),0);


console.log(functionFive("112,sf34,4)-k)"))


查看完整回答
反对 回复 2022-09-16
  • 6 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号