diff --git a/fontes/bibliotecas/primitivas-vetor.ts b/fontes/bibliotecas/primitivas-vetor.ts index 17957537..9fd99606 100644 --- a/fontes/bibliotecas/primitivas-vetor.ts +++ b/fontes/bibliotecas/primitivas-vetor.ts @@ -17,12 +17,20 @@ export default { interpretador: VisitanteComumInterface, vetor: Array, inicio: number, - excluirQuantidade: number, + excluirQuantidade?: number, ...items: any[] ): Promise => { - const elementos = !items.length + let elementos = []; + + if(excluirQuantidade || excluirQuantidade === 0){ + elementos = !items.length ? vetor.splice(inicio, excluirQuantidade) : vetor.splice(inicio, excluirQuantidade, ...items); + } else { + elementos = !items.length + ? vetor.splice(inicio) + : vetor.splice(inicio, ...items); + } return Promise.resolve(elementos); }, fatiar: (interpretador: VisitanteComumInterface, vetor: Array, inicio: number, fim: number): Promise => diff --git a/testes/primitivas/primitivas-vetor.test.ts b/testes/primitivas/primitivas-vetor.test.ts index 8af776d8..8435cba5 100644 --- a/testes/primitivas/primitivas-vetor.test.ts +++ b/testes/primitivas/primitivas-vetor.test.ts @@ -129,6 +129,14 @@ describe('Primitivas de vetor', () => { expect(vetor).toStrictEqual([1, 'texto1', 'texto2', 5]); expect(resultado).toStrictEqual([2, 3, 4]); }); + + it('Apenas um parĂ¢metro', async () => { + let vetor = ['Oscilador', 'Circuito', 'Modulador', 'Refrigerador'] + const resultado = await primitivasVetor.encaixar(interpretador, vetor, 1); + + expect(vetor).toStrictEqual(['Oscilador']); + expect(resultado).toStrictEqual([ 'Circuito', 'Modulador', 'Refrigerador' ]); + }); }); describe('somar()', () => {