JavaScript에서 Array.flat()을 사용하여 배열 평면화
11769 단어 programmingbeginnersjavascriptwebdev
#JavaScript에서 배열을 평면화하는 것은 항상 복잡했습니다. 더 이상! ES2019에서는 배열을 평면화하는 새로운 방법을 도입했습니다. 그리고 "깊이"매개변수가 있으므로 모든 수준의 중첩을 전달할 수 있습니다. 놀랍습니다 🤩
const nested = [ ['📦', '📦'], ['📦']];
const flattened = nested.flat();
console.log(flattened);
// ['📦', '📦', '📦']
깊이 매개변수 설정
이 방법의 구문은 다음과 같습니다.
array.flat(<depth>);
기본적으로
flat()
는 한 레이어 깊이만 병합합니다. 즉, depth
는 1
입니다.array.flat();
// Same as
array.flat(1);
더 깊은 중첩 배열
좋은 점은 이 방법이 1레벨 이상에서도 작동한다는 것입니다. 더 깊은 중첩 배열을 평면화하려면 적절한
depth
매개변수를 설정하기만 하면 됩니다.const twoLevelsDeep = [[1, [2, 2], 1]];
// depth = 1
twoLevelsDeep.flat()
// [1, [2, 2], 1]
// depth = 2
twoLevelsDeep.flat(2)
// [1, 2, 2, 1]
무한 중첩 배열
무한히 깊이 들어가고 싶다고 합시다. 문제 없습니다. 우리도 그렇게 할 수 있습니다. 그냥 패스
Infinity
.const veryDeep = [[1, [2, 2, [3,[4,[5,[6]]]]], 1]];
veryDeep.flat(Infinity);
// [1, 2, 2, 3, 4, 5, 6, 1]
빈 슬롯이 있는 배열
flat()
가 할 수 있는 또 다른 멋진 기능은 어레이에서 빈 슬롯을 제거하는 것입니다.const missingNumbers = [1, ,3, ,5];
missingNumbers.flat();
// [1, 3, 5];
브라우저 지원
flat
는 ES2019에 도입된 매우 새로운 기능이므로 Internet Explorer나 Edge는 잊어버리십시오. 하지만 놀라지 마세요 😅Browser Support: flat
대체 솔루션
지원이 크지 않기 때문입니다. 다음은 몇 가지 대체 솔루션입니다.
ES6 솔루션
다음은 ES6 솔루션입니다. 이것은 하나의 수준 중첩 배열에서만 작동합니다.
const oneLevelDeep = [ [1, 2], [3]];
const flattened = [].concat(...oneLevelDeep);
// [1, 2, 3,]
이전 브라우저 솔루션
다음은 이전 브라우저 및 ES6 이전 버전에 대한 것입니다. 다시 말하지만 이것은 하나의 수준 중첩 배열에서만 작동합니다.
const oneLevelDeep = [ [1, 2], [3]];
const flattened = [].concat.apply([], oneLevelDeep);
// [1, 2, 3,]
재귀
중첩이 더 깊은 배열의 경우 재귀를 사용할 수 있습니다. 다음은 MDN web docs의 솔루션입니다.
var arr1 = [1,2,3,[1,2,3,4, [2,3,4]]];
function flattenDeep(arr1) {
return arr1.reduce((acc, val) => Array.isArray(val) ? acc.concat(flattenDeep(val)) : acc.concat(val), []);
}
flattenDeep(arr1);// [1, 2, 3, 1, 2, 3, 4, 2, 3, 4]
커뮤니티 입력
💬 Array.flat()의 흥미로운 사용 사례가 있습니까?
// Please write a function to search for 213
function search(needle, haystack) {}
const haystack =[1, 4, [5,6,7, [8, 18, [34,177,[98,[210,[213]]]]]]];
const needle = 213;
자원
읽어주셔서 감사합니다 ❤
안녕하세요! | | Facebook | Blog | SamanthaMing.com
Reference
이 문제에 관하여(JavaScript에서 Array.flat()을 사용하여 배열 평면화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/samanthaming/flatten-array-using-array-flat-in-javascript-1ieg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)