Space
article thumbnail
반응형

배열의 원소만큼 추가하기


풀이

// 풀이 1
function solution(arr) {
    return arr.reduce((list, num) => [...list, ...new Array(num).fill(num)], []);
}
// 풀이 2
function solution(arr) {
	return arr.reduce((acc, cur) => acc.concat(new Array(cur).fill(cur)), [])
}

반응형

요점

1) array.fill( value [ , start, end ] )

    : 배열의 start index부터 end index 전까지 value 값으로 채워주는 함수이다.

// arr.fill(value[, start, end])

// value : 배열에 채울 값

// start : 배열의 시작 index (default value : 0)
//         (양수 : 배열의 앞에서부터 시작한다.)
//         (음수 : 배열의 마지막 요소에서부터 시작하고, 마지막 요소가 -1이고, 그로부터 앞 요소들이 -1씩 작아진다.)

// end : 배열의 종료 index (default value : 해당 배열의 길이(array.length))
//       (값을 입력하지 않으면 start index부터 배열의 끝까지 value로 채운다.)
//       (양수 : 배열의 앞에서부터 시작한다.)
//       (음수 : 배열의 마지막 요소에서부터 시작하고, 마지막 요소가 -1이고, 그로부터 앞 요소들이 -1씩 작아진다.)
// example
const arr1 = ['a', 'b', 'c', 'd'];
arr1.fill('A'); // ['A', 'A', 'A', 'A']


// 양수 사용
const arr2 = ['a', 'b', 'c', 'd'];
arr2.fill('A', 1); // ['a', 'A', 'A', 'A']

const arr3 = ['a', 'b', 'c', 'd'];
arr3.fill('A', 1, 3); // ['a', 'A', 'A', 'd']


// 음수 사용
const arr4 = ['a', 'b', 'c', 'd'];
arr4.fill('A', -2); // ['a', 'b', 'A', 'A']

const arr5 = ['a', 'b', 'c', 'd'];
arr5.fill('A', -3, -1); // ['a', 'A', 'A', 'd']

2) new Array(n) (=== Array(n))

     : n개의 요소를 가지는 새로운 배열을 생성하고, 초기화 되지 않는다.

       (초기화 되지 않아 undefined로 출력된다.)

       (되도록이면 new를 사용하여 작성하도록 하자! (코드를 이해하기 쉽다.))

Array() // 새로운 배열을 생성한다.
new Array() // 새로운 배열을 생성한다. (윗 방법보다 new를 사용하여 작성하도록 하자!)

new Array(n) // n개의 요소를 가지는 새로운 배열을 생성한다.


// example
let arr = new Array(3);
console.log(arr); // [undefined, undefined, undefined]

let arr2 = Array(3);
console.log(arr2); // [undefined, undefined, undefined]
// example
const arr = new Array(4).fill('a')
console.log(arr);  // ['a', 'a', 'a', 'a']
반응형
profile

Space

@Space_zero

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!