关于js的三个问题,求解答

第一题:封装将字符串中大于4的数字全部相加并返回/ lvar str = 'a4b2d5b1g9o3o4c7d4xx8yy6 '
第二题:var str='a2b4c1d3e2f2g2h4i2g2k5m3n2n3q21pw4admin3'字符的每个大于2的数字都乘2,但是不包括2
第三题:封装函数,10到100的十位随机数并升序排序

const func1 = str => [...str].reduce((p, c) => /\d/.test(c) && parseInt(c) > 4 ? p + parseInt(c) : p, 0)
const func2 = str => [...str].map(e => /\d/.test(e) && parseInt(e) > 2 ? e * 2 : e).join('')
const func3 = n => Array.from({ length: n }).map(e => ~~(Math.random() * 90) + 10).sort((e1, e2) => e1 - e2)

// 第一题:封装将字符串中大于4的数字全部相加并返回/ lvar str = 'a4b2d5b1g9o3o4c7d4xx8yy6 '
        var str = 'a4b2d5b1g9o3o4c7d4xx8yy6 '
        let e = /\d+?/g
        let a = str.match(e).reduce((pre,curr) => {
            return pre + (curr * 1)
        },0)
        
        // 第二题:var str='a2b4c1d3e2f2g2h4i2g2k5m3n2n3q21pw4admin3'字符的每个大于2的数字都乘2,但是不包括2
        var str2='a2b4c1d3e2f2g2h4i2g2k5m3n2n3q21pw4admin3'
        let b = str.match(e).map(el => {
            return el > 2 ? el * 2 : el * 1
        })
        console.log(b)

        // 第三题:封装函数,10到100的十位随机数并升序排序
        function getRandom(min,max) {
            return Math.floor(Math.random()*(max-min+1)+min);
        }
        function getArr() {
            let arr = []
            for (let i = 0; i < 10; i ++) {
                arr.push( getRandom(10,100))
            }
            return arr.sort()
        }