算法题

数组乱序

实现一个数组乱序,每一个元素出现在每一个位置的概率是平均的

function noSort(arr) {
    const len = arr.length
    for (let i = 0; i < len; i++) {
        const random = Math.random() * (len - i)
        arr.push(arr.splice(random, 1))
    }

    return arr
}

const arr = [1, 2, 3, 4, 5]
console.log(noSort(arr))

补全所需函数

把下面代码中的add one two函数补全,其中加法运算必须在add函数里

function add() {
}

function one() {
}

function two() {
}

console.log(one(add(two())))
// 3

console.log(two(add(one())))
// 3

补全后代码

function add(num) {
    return function () {
        return this.value + num
    }
}

function one(fun) {
    let obj = {
        value: 1
    }
    if (fun) {
        return fun.apply(obj)
    } else {
        return obj.value
    }
}

function two(fun) {
    let obj = {
        value: 2
    }
    if (fun) {
        return fun.apply(obj)
    } else {
        return obj.value
    }
}

console.log(one(add(two())))    //3
console.log(two(add(one())))    //3

排序

链接

posted @ 2021-02-23 11:02  懒懒同学  阅读(164)  评论(0编辑  收藏  举报