chunk

Problem

숫자로 된 배열과 숫자를 입력받아서 배열을 입력받은 숫자만큼 나누어서 배열로 반환하는 함수를 구현하기

Solution

function chunk(array, size) {
    const chunked = [];

    for (let element of array) {
        const last = chunked[chunked.length - 1];

        if (!last || last.length === size) {
            chunked.push([element])
        } else {
            last.push(element)
        }
    }

    return chunked
}
function chunk() {
    const chunked = [];
    let index = 0;

    while (index < array.length) {
        chunked.push(array.slice(index, index + size));
        index += size;
    }

    return chunked;
}

Discussion

쉬운 문제라고 생각했는데 last가 chunked를 참조하고 있다는걸 이해 못 해서 오래걸림... last가 chunked를 참조하고 있기 때문에 last를 수정하면 chunked도 수정된다. 잘 기억해두자

Last updated