SOURCE

let str = 'abc'

console.log(str)


function reserve(str) {

    if (str.length < 1) return str

    return reserve(str.slice(1)) + str.charAt(0)

}

// console.log(reserve(str))

/**
 * 写一个函数,接受一串字符串,同时从前后开始拿一位字符对比,
 * 如果两个相等,返回 true,如果不等,返回 false。
 * 判断回文
 */

function equal (str) {
    if (str.length === 1) return true

    if (str.length === 2) return str.charAt(0) === str.charAt(1)

    if (str.slice(1) === str.slice(-1)) return equal(str.slice(1, -1))

    return false
}

/**
 * 编写一个函数,接受一个数组,返回扁平化新数组。
 */

function arrayFlat(arr, result = []) {
    if (!Array.isArray(arr)) throw Error('xxx')

    arr.forEach(item => {
        if (Array.isArray(item)) {
            result.push(...arrayFlat(item))
        } else {
            result.push(item)
        }
    })

    return result
}

var b = arrayFlat([
    1,
    2,
    [3, 4],
    5,
    [8, 25]
])
// console.log(b)

/**
 * 编写一个函数,接受一个对象,这个对象值是偶数,则让它们相加,返回这个总值。
 */

const isObject = obj => Object.prototype.toString.call(obj) === '[object, Object]'

const isEvenNum = data => typeof data === 'number' && !(data & 1)

function objectEvenNumAdd(obj) {
    var sum = 0
    if (isObject(obj)) {
        Object.entries(obj).forEach(([k, v]) => {
            if (isEvenNum(v)) {
                sum += v
            } else if (isObject(v)) {
                sum += objectEvenNumAdd(v)
            }
        })
    }
    return sum
}


console 命令行工具 X clear

                    
>
console