언어·프레임워크/JavaScript
[JavaScript] 배열 메서드 forEach와 fill을 이용한 반복적인 배열 요소 생성(map 추가)
DandyNow
2023. 5. 1. 22:18
728x90
반응형
알고리즘 문제를 풀이하다가 [1, 2, 1, 2, 1, 2, 1] 이렇게 생긴 배열이나 [1, 1, 2, 2, 3, 3, 4]와 같은 배열이 필요했다. 제출한 문제는 for문을 사용해 해결했는데 forEach 배열 메서드로 해당 배열을 만들어 보고 싶었다. 작성한 코드는 아래와 같다.
let n = 2;
let arr = ["hello", "one", "even", "never", "now", "world", "draw"]; // 이 배열과 대응하는 정수 요소의 배열을 생성하는 것이 목적이다.
const newArr = new Array(arr.length);
const result = [];
newArr.fill(1);
newArr.forEach((_, idx) => {
if ((idx + 1) % n === 0) {
result.push(n);
} else {
result.push((idx + 1) % n);
}
});
console.log(result);
// 출력 결과 : [1, 2, 1, 2, 1, 2, 1]
let n = 2;
let arr = ["hello", "one", "even", "never", "now", "world", "draw"]; // 이 배열과 대응하는 정수 요소의 배열을 생성하는 것이 목적이다.
const newArr = new Array(arr.length);
const result = [];
newArr.fill(1);
let num = 1;
newArr.forEach((_, idx) => {
if ((idx + 1) % n === 0) {
result.push(num);
num++;
} else {
result.push(num);
}
});
console.log(result);
// 출력 결과: [1, 1, 2, 2, 3, 3, 4]
배열 메서드 map을 이용한 코드를 아래와 같이 추가로 작성해 보았다.
let num = 1;
const result = arr.map((el, idx) => {
if ((idx + 1) % n === 0) {
return n;
} else {
return (idx + 1) % n;
}
});
// 출력 결과 : [ 1, 2, 1, 2, 1, 2, 1]
let num = 1;
const result = arr.map((el, idx) => {
if ((idx + 1) % n === 0) {
let temp = num;
num++;
return temp;
} else {
return num;
}
});
// 출력 결과 : [1, 1, 2, 2, 3, 3, 4]
728x90
반응형