所有偶数之和的函数

我想创建一个函数,它将任何数字和字符的字符串作为一个参数。任务是找到所有偶数(数字)并将它们相加,然后在控制台中显示总值。例如,如果以下字符串作为一个参数(“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")


喵喵时光机
浏览 213回答 6
6回答

浮云间

这会有帮助吗?function sumEven(s) {  return s.split('').map(x=>+x).filter(x=>x%2==0).reduce((a,b)=>a+b)}console.log(sumEven('idsv366f4386523ec64qe35c'))

偶然的你

以下代码可帮助您实现最小循环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)"));

慕运维8079593

我只是用正则表达式搜索所有偶数个位数,除了零(因为它不会对总和有贡献)并求和结果数组,即const functionFive = str => (str.match(/2|4|6|8/g) || [])  .reduce((sum, num) => sum + parseInt(num, 10), 0)console.info(functionFive("sau213e89q8e7ey1"))

天涯尽头无女友

试试这个:   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"))

繁星淼淼

获得结果的单线解决方案。希望这有帮助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)

明月笑刀无情

使用正则表达式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)"))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript