방명록
- [JavaScript] 배열 메서드 forEach와 fill을 이용한 반복적인 배열 요소 생성(map 추가)2023년 05월 01일 22시 18분 15초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
알고리즘 문제를 풀이하다가 [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반응형'언어·프레임워크 > JavaScript' 카테고리의 다른 글
[Javascript] RSSI를 미터(m)로 환산하는 함수 (0) 2023.05.08 [JavaScript] 파이썬의 enumerate()를 자바스크립트에서? (0) 2023.05.07 [JavaScript] 바닐라 자바스크립트로 외부 HTML 로딩하여 Ajax 처럼 화면 렌더링 (1) 2022.09.23 [JavaScript][Trouble Shooting] json-server에서 "_id" 삭제(DELETE)가 안되는 문제, 더미 데이터 생성 (0) 2022.09.18 [JavaScript][문제해결] Javascript의 select에서 checked인 모든 요소를 삭제하려고 했는데... (0) 2022.05.17 다음글이 없습니다.이전글이 없습니다.댓글