馃 Zip Unzip Challenge
zip([arrays] (...Array)): Array
.
Funzione Crea una matrice di elementi raggruppati, il primo dei quali contiene i primi elementi degli array dati, il secondo dei quali contiene i secondi elementi degli array dati, e cos矛 via.
unzip(array (Array)): Array
.
Funzione Questo metodo 猫 come zip
tranne per il fatto che accetta una matrice di elementi raggruppati e crea un array che raggruppa gli elementi nella loro configurazione di pre-zip.
Test della soluzione
Verifica della correttezza della soluzione:
npm run test
I test relativi al challenge sono:
Zip
describe('馃 Zip Challenge', () => {
it('Zip two array [a,b] , [c,d] => [[a,c],[b,d]]', () => {
expect(zip(['a', 'b'], ['c', 'd'])).toBe([['a', 'c'], ['b', 'd']]);
});
it('Zip more sparse arrays [a,b] , [c,d], [e, undefined] => [[a,c,e],[b,d,undefined]]', () => {
expect(zip(['a', 'b'], ['c', 'd'][('e', undefined)])).toBe([
['a', 'c', 'e'],
['b', 'd', undefined],
]);
});
it('Zip more sparse arrays [a,b] , [c,d], [f, undefined] => [[a,c,undefined],[b, d, f]]', () => {
expect(zip(['a', 'b'], ['c', 'd'], [undefined, 'f'])).toBe([
['a', 'c', undefined],
['b', 'd', 'f'],
]);
});
it('Zip more sparse arrays [a,b] , [c,d], [f, undefined] => [[a,c,undefined],[b, d, f]]', () => {
expect(zip(['a', 'b'], [undefined, 'd'], [undefined, 'f'])).toBe([
['a', undefined, undefined],
['b', 'd', 'f'],
]);
});
it('Zip 100 arrays', () => {
const length = 100;
const test = Array(length).fill(['a', 'b']);
expect(zip(...test)).toHaveLength(length);
});
});
UnZip
describe('馃 Unzip Challenge', () => {
it('UnZip two arrays [[a,c],[b,d]] => [[a,b] , [c,d]]', () => {
expect(unzip(['a', 'c'], ['b', 'd'])).toBe([['a', 'b'], ['c', 'd']]);
});
it('UnZip sparse arrays [a,c,e] , [c,d] => [[a,b],[b,d],[e, undefined]]', () => {
expect(unzip(['a', 'c', 'e'], ['b', 'd', undefined])).toBe([
['a', 'b'],
['c', 'd'],
[('e', undefined)],
]);
});
it('UnZip sparse arrays [a, c, e], [b, undefined, f] => [[a,c],[b,d],[undefined, f ]]', () => {
expect(unzip((['a', 'c', 'e'], ['b', undefined, 'f']))).toBe([
['a', 'c'],
['b', undefined],
['e', 'f'],
]);
});
});
Edited by Daniele Fiungo