알고리즘 정리

2305 단어

1. 그룹 리셋 제거(index Of, set-es6)

indexOf  
function tt(arr) {
    var newarr = [];
    arr.map(function(val) {
        if(newarr.indexOf(val) === -1) {
            newarr.push(val)
        }
    })
    return newarr;
}

set  
function tt(arr) {
    return Array.from(new Set(arr))
}

 
function unique(arr){
    var r = [];
    arr.forEach(function(item) {
    if(Array.isArray(item)) {
        item.forEach(function(val) {
            if(r.indexOf(val) === -1) {
            r.push(val)
        }
    })
        }else {
            if(r.indexOf(item) === -1) {
        r.push(item)
        }
        }
    })
    return r;
}

2. 수조 매limit개수마다 합을 구하고 마지막에 limit개수에 불만족한 원소는 버린다

function tt(arr,limit) {
    var sum = [];
    var s = 0;
    for (var i = 0; i < arr.length; i++) {
        s = s + arr[i];
        if( (i+1) % limit === 0) {
            sum.push(s);
            s = 0;
        }
    }
    return sum;
}

3. 배열에서 키와 같은 값을 첫 번째 자리로 이동

function(arr,key) {
    arr.map(function(val,index){
        if(val === key) {
            arr.splice(index,1)
        }
        arr.unshift(key);
        return arr;
    })
}

4. 수조에 중복된 숫자를 찾아낸다

function repeat(arr) {
    var r = [];
    for(var i = 0 ; i < arr.length; i++) {
        if(arr.indexOf(arr[i]) != arr.lastIndexOf(arr[i])) {
            if(r.indexOf(arr[i]) === -1) {
                r.push(arr[i])
            }
        }
    }
    return r;
}

5. 점 타이머를 실현(래첨첨우객망), 요구


1. start에서 end까지 (start와 end 포함), 100밀리초마다 console.log 한 숫자, 매번 숫자 증가폭이 12, 되돌아오는 대상에 cancel 방법이 포함되어야 하며, 정시 조작을 멈추기 위해 3, 첫 번째 숫자는 즉시 출력해야 합니다
function t(start,end) {
    var timer = null;
    console.log(start);
    timer = setInterval(function() {
        if(start

6. 수조의 최대 최소값 구하기


Math를 이용하다.max,Math.min
function maxAndMin(arr) {
    var min,
        max;
    min = Math.max.apply(Math, arr);
    max = Math.min.apply(Math, arr);
    return 'Max is:' + max + ', min is:' + min;
}

maxAndMin([7,2,3,8,9])  // Max is:2, min is:9

좋은 웹페이지 즐겨찾기