HOWTO · JavaScript
JavaScript의 Zip 배열
이 기사는 JavaScript에서 두 개 이상의 배열을 압축하는 방법을 이해하는 데 도움이 됩니다.
이 페이지의 내용
JavaScript에서는 두 개의 배열을 압축하려는 상황이 있습니다. 이 튜토리얼에서는 JavaScript를 사용하여 두 개의 컬렉션을 플래싱하는 방법을 살펴보겠습니다.
Python zip 함수의 JavaScript 대응물을 작성해야 합니다. 즉, 동일한 길이의 컬렉션이 많이 주어지면 쌍의 배열을 만들어야 합니다.
map() 메서드, Array.from() 메서드 및 Array.prototype.fill() 메서드를 사용하는 것과 같이 JavaScript에서 두 개의 배열을 압축할 수 있는 다양한 방법이 있습니다.
JavaScript에서 map 메서드를 사용하여 배열 압축
JavaScript의 map() 함수는 특정 길이의 두 배열을 압축합니다. 그러나 두 어레이의 길이가 일치하지 않으면 undefined가 됩니다.
let a = [9, 8, 7];
let b = ['1', '2', '3'];
let zip = a.map(function(e, i) {
return [e, b[i]];
});
console.log(zip);
map() 메소드가 받아들이는 콜백 함수는 a 배열의 요소와 a 컬렉션으로 매핑된 b 배열의 요소를 호출합니다. 이 방법으로 압축하는 방법을 배우는 것도 간단합니다.
출력:
[[9, "1"], [8, "2"], [7, "3"]]
map 방법을 사용하는 동안 두 어레이의 길이가 같아야 합니다. 그렇지 않으면 undefined 결과를 얻게 됩니다.
let a = [9, 8, 7, 6];
let b = ['1', '2', '3'];
let zip = a.map(function(e, i) {
return [e, b[i]];
});
console.log(zip);
a와 b 배열의 길이가 다른 것을 볼 수 있습니다.
출력:
[[9, "1"], [8, "2"], [7, "3"], [6, undefined]]
JavaScript에서 Array.from 메서드를 사용하여 배열 압축
let a = [9, 8, 7, 6];
let b = ['90', '80', '70', '60'];
let zip = (a, b) =>
Array.from(Array(Math.max(a.length, b.length)), (_, i) => [a[i], b[i]]);
console.log(zip(a, b));
Array.from 메서드의 인스턴스에는 두 개의 배열이 있습니다. 그들은 화살표 기능으로 보내질 것입니다. 길이를 일치시킨 후 프로세스는 두 개의 개별 배열에서 항목을 매핑합니다.
출력:
[[9, "90"], [8, "80"], [7, "70"], [6, "60"]]
또한 해당 맵은 누락된 요소에 대해 undefined를 출력합니다.
let a = [9, 8, 7];
let b = ['90', '80', '70', '60'];
let zip = (a, b) =>
Array.from(Array(Math.max(a.length, b.length)), (_, i) => [a[i], b[i]]);
console.log(zip(a, b));
출력:
[[9, "90"], [8, "80"], [7, "70"], [undefined, "60"]]
Array.prototype.fill() 메소드는 Array.from() 메소드와 동일하게 작동합니다.
let a = [7, 8, 9];
let b = ['70', '80', '90'];
let zip = (a, b) =>
Array(Math.max(a.length, b.length)).fill().map((_, i) => [a[i], b[i]]);
console.log(zip(a, b));
출력:
[[7, "70"], [8, "80"], [9, "90"]]