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'))
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)"));
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"))
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"))
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)
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)"))
添加回答
举报
