SOURCE

// 加法
function getAddition(type = 0, carry = false) {
    let addend = [], result
    result = Math.floor((Math.random() * 9) + 1)
    addend[0] = Math.floor(Math.random() * (result - 1) + 1)
    if (carry) {
        result = Math.floor(Math.random() * 9)
        addend[0] = Math.floor(Math.random() * (10 - (result + 1))) + (result + 1)
        if (type <= 1) {
            result += 10
        }
    } else {
        if (type == 1) {
             result += 10
            addend[0] += 10
        }
    }

    if (type == 2) {
        result += Math.floor(Math.random() * 8 + 2) * 10
    }
    if (type == 3) {
        result += Math.floor(Math.random() * 7 + 3) * 10
        addend[0] += Math.floor(Math.random() * Math.floor(result / 10 - 2) + 1) * 10
    }
    addend[1] = result - addend[0]
    if (type == 2) {
        addend.sort(() => Math.random() - 0.5)
    }
    return {
        formula: addend,
        result: result
    }
}

// 两个个位数相加
// 20 以内不进位加法(10 以内加法),两个个位数相加和 <=10
console.log(JSON.stringify(getAddition(0, false)))
// 20 以内进位加法,两个个位数相加 11 <= 得数 <= 18
console.log(JSON.stringify(getAddition(0, true)))

//一个两位数与一个个位数相加
// 100 以内不进位加法
console.log(JSON.stringify(getAddition(1, false)))
// 100 以内进位加法
console.log(JSON.stringify(getAddition(1, true)))

//两个两位数相加
// 100 以内不进位加法
console.log(JSON.stringify(getAddition(2, false)))
// 100 以内进位加法
console.log(JSON.stringify(getAddition(2, true)))
//两个两位数相加
// 100 以内不进位加法
console.log(JSON.stringify(getAddition(3, false)))
// 100 以内进位加法
console.log(JSON.stringify(getAddition(3, true)))



// 减法
function getSubtraction(type = 0, decomposition = false) {
    let calculation = getAddition(type, decomposition)
    return {
        formula: [calculation.result, calculation.formula[0]],
        result: calculation.formula[1]
    }
}


// // 两个个位数相加
// // 20 以内不退位减法(10 以内减法),两个个位数相加和 <=10
// console.log(JSON.stringify(getSubtraction(0, false)))
// // 20 以内退位减法,两个个位数相加 11 <= 得数 <= 18
// console.log(JSON.stringify(getSubtraction(0, true)))

// //一个两位数与一个个位数相加
// // 100 以内不退位减法
// console.log(JSON.stringify(getSubtraction(1, false)))
// // 100 以内退位减法
// console.log(JSON.stringify(getSubtraction(1, true)))

// //两个两位数相加
// // 100 以内不退位减法
// console.log(JSON.stringify(getSubtraction(2, false)))
// // 100 以内退位减法
// console.log(JSON.stringify(getSubtraction(2, true)))
console 命令行工具 X clear

                    
>
console