一道题

2017-12-22  本文已影响10人  四爷在此

简单说:写个函数,接受数字n,返回个数组,包含n个随机数(min, max 之间),且不重复。

function fn(n,min=2,max=32) {
    if (isNaN(n)) {
        console.warn('input n:' + n + ' is not a Number');
        return [];
    }
    if (n > max || n < min) {
        console.warn('input n:' + n + ' is out of bound');
        return [];
    }
    var arr1 = [];
    for (let i =0; i < n; i++) {
        var ret = rand(min, max);
        if (isDupli(ret, arr1)) {
            i--;
        } else {
            arr1.push(ret);
        }
    }
    return arr1;
}

function rand(min, max) {
    return ret = Math.floor(Math.random()*(max-min)) + min;
}

function isDupli(ele, arr) {
    for(let i = 0; i< arr.length; i++) {
        if (arr[i] == ele) return true;
    }
    return false;
}

fn(5);

上一篇 下一篇

猜你喜欢

热点阅读