Skip to content

馃Zip Unzip Challenge

Funzione zip([arrays] (...Array)): Array.

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.

Funzione unzip(array (Array)): Array.

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