需要掌握的手写JS代码

249 阅读1分钟

递归求和

// 奇数求和(oddsum),偶数求和(evensum),求和sum
function oddsum() {
    if(n % 2 === 0) {
        n--
    }
    if (n === 1) {
        return 1
    }
    return n + oddsum(n - 2)
} 

多维数组扁平化

// flatten 压平,使变平
// 第一种 while 拓展运算符 concat
function flatten(arr) {
    while(arr.some(item => Array.isArray(item))) {
        arr = [].concat(...arr)
    }
    return arr
}
// 第二种 递归
function flatten(arr) {
    let result = []
    arr.forEach(item => {
        if (Array.isArray(item)) {
            result = result.concat(flatten(item))
        } else {
            result.push(item)
        }
    })
    return result
}