코딩: Javascript에서 배열 평면화
배열 편평화: 배열 편평화는 중첩 배열(즉, 배열 내의 배열)을 포함할 수 있는 배열을 취하여 단일 1차원 배열로 변환하는 것을 의미합니다. 즉, 모든 중첩 배열을 제거하고 해당 요소를 단일 배열로 결합하는 작업이 포함됩니다.
우리는 여러 솔루션에 대해 논의할 것입니다.
해결 방법 1: 재귀 사용
FlattenArray이 코드는 배열을 인수로 사용하는 호출된 함수를 정의합니다 . 이 함수의 목표는 중첩된 배열을 가져와 평면화된 버전을 반환하는 것입니다. 예를 들어 입력이 이면 [1, 2, [3, 4]]함수는 를 반환해야 합니다 [1, 2, 3, 4].
이 함수는 평면화된 버전의 입력 배열을 저장하는 데 사용되는 비어 있는 배열을 생성하는 것으로 시작합니다. 그런 다음 for입력 배열의 각 요소를 반복하는 루프에 들어갑니다.
입력 배열의 각 요소에 대해 이 함수는 메서드를 사용하여 요소 자체가 배열인지 확인합니다 Array.isArray. 요소가 배열인 경우 함수는 중첩 배열을 인수로 사용하여 자신을 재귀적으로 호출하고 메서드를 사용하여 concat평면화된 중첩 배열을 flatArray함수 시작 시 생성된 배열과 결합합니다.
요소가 배열이 아닌 경우 함수는 단순히 요소를 에 푸시합니다 flatArray.
입력 배열의 모든 요소가 처리된 후 함수는 flatArray.
완전한 코드:
// Flatten Array
function FlattenArray(arr) {
var flatArray = []
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
flatArray = flatArray.concat(FlattenArray(arr[i]))
} else {
flatArray.push(arr[i])
}
}
return flatArray
}
var arr = [1, 2, 3, 4, [5, 6, [7, 8]], [9]]
console.log(FlattenArray(arr))
해결 방법 2: 축소 방법 사용
function flattenArray(arr) {
return arr.reduce(function(flatArray, current) {
if (Array.isArray(current)) {
return flatArray.concat(flattenArray(current));
} else {
return flatArray.concat(current);
}
}, []);
}
var arr = [1, 2, 3, 4, [5, 6, [7, 8]], [9]];
console.log(flattenArray(arr)); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
이 reduce메서드는 콜백 함수와 누산기에 대한 초기 값의 두 가지 인수를 사용합니다. 이 경우 누산기는 평면화된 버전의 입력 배열을 빌드하는 데 사용되는 빈 배열입니다.
콜백 함수는 처리 중인 현재 값(입력 배열의 각 요소가 됨)과 누산기의 현재 값이라는 두 가지 인수를 사용합니다.
콜백 함수 내에서 를 사용하여 현재 값이 배열인지 확인합니다 Array.isArray. 배열인 경우 flattenArray중첩 배열을 평면화하기 위해 재귀적으로 호출한 다음 메서드를 사용하여 평면화된 배열을 누산기와 연결합니다 concat.
현재 값이 배열이 아닌 경우 를 사용하여 누산기와 간단히 연결합니다 concat.
마지막으로 이 reduce메서드는 누산기의 최종 값을 반환하며 이는 입력 배열의 평평한 버전이 됩니다.
이 코드를 사용하면 이전과 동일한 출력을 얻을 수 있습니다 [1, 2, 3, 4, 5, 6, 7, 8, 9].
Javascript로 코딩하는 방법에 대해 자세히 알아보려면 저를 팔로우하여 더 많은 코드 스니펫과 예제를 확인하세요. 언어를 마스터하고 개발자로서의 기술을 향상시키는 방법에 대한 귀중한 정보와 팁을 공유하겠습니다. 계속해서 더 많은 업데이트를 확인하고 함께 학습을 계속해 봅시다.
읽어주셔서 감사합니다. 행복한 학습이 되세요
Python의 스레딩 및 다중 처리 설명 JAVA에서 데이터베이스에 액세스하는 가장 쉬운 방법 가장 일반적으로 묻는 Java8 스트림 기반 인터뷰 질문 — 1부 Apache Maven — 요약
![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































