Unzip an array of arrays

This function ‘unzips’ an array of tuples into multiple arrays, reversing the ‘zip’ operation.

JavaScript:

let unzip = arrays => arrays[0].map((_,i) => arrays.map(array => array[i]));

// Example
console.log(unzip([['a', 1, true], ['b', 2, false], ['c', 3, true]])); // [['a', 'b', 'c'], [1, 2, 3], [true, false, true]]
console.log(unzip([['John', 23, 'Male'], ['Jane', 21, 'Female']])); // [['John', 'Jane'], [23, 21], ['Male', 'Female']]

TypeScript:

let unzip = (arrays: T[][]): T[][] => arrays[0].map((_,i) => arrays.map(array => array[i]));

// Example
console.log(unzip([['a', 1, true], ['b', 2, false], ['c', 3, true]])); // [['a', 'b', 'c'], [1, 2, 3], [true, false, true]]
console.log(unzip([['John', 23, 'Male'], ['Jane', 21, 'Female']])); // [['John', 'Jane'], [23, 21], ['Male', 'Female']]
Member since January 2, 2019

As a seasoned WordPress developer with expertise in various tech stacks and languages, I bring years of experience to every project I handle. My passion for coding and dedication to delivering exceptional work ensures that each project I take on is of the highest quality. I specialize in creating custom themes, developing plugins, and building full-scale web systems. By staying up-to-date with the latest industry trends and best practices, I incorporate cutting-edge solutions into my work.

Comments

    Your email address will not be published. Required fields are marked *