From 9b1f10068ab4309e6737ecdab482ab671e0c4685 Mon Sep 17 00:00:00 2001 From: borobor Date: Sat, 19 Feb 2022 23:04:07 +0100 Subject: [PATCH] Write a completely new function that passes all tests --- 04_removeFromArray/removeFromArray.js | 27 +++++++++++++++++++--- 04_removeFromArray/removeFromArray.spec.js | 12 +++++----- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/04_removeFromArray/removeFromArray.js b/04_removeFromArray/removeFromArray.js index 86dacb7..1ffbf2b 100644 --- a/04_removeFromArray/removeFromArray.js +++ b/04_removeFromArray/removeFromArray.js @@ -1,7 +1,28 @@ -const removeFromArray = function(arr, item) { - let removedArr = arr.splice((item - 1), 1); - return arr; +//rest parameters! => ...Args + +const removeFromArray = function(...input) { + let array = input[0]; + let newArray = []; + + array.forEach((item) => { + if (!input.includes(item)) newArray.push(item); + }) + + return newArray; }; +//let's try the same but with .filter()! +// const removeFromArray = function (...input) { +// array = input[0]; + +// newArray = array.filter((item) => { +// if (!input.includes(item)) return true; +// }) + +// return newArray; +// }; + +console.log(removeFromArray([1, 2, 3, 4], 2, 4)); + // Do not edit below this line module.exports = removeFromArray; diff --git a/04_removeFromArray/removeFromArray.spec.js b/04_removeFromArray/removeFromArray.spec.js index 21f34cf..c17239a 100644 --- a/04_removeFromArray/removeFromArray.spec.js +++ b/04_removeFromArray/removeFromArray.spec.js @@ -4,22 +4,22 @@ describe('removeFromArray', () => { test('removes a single value', () => { expect(removeFromArray([1, 2, 3, 4], 3)).toEqual([1, 2, 4]); }); - test.skip('removes multiple values', () => { + test('removes multiple values', () => { expect(removeFromArray([1, 2, 3, 4], 3, 2)).toEqual([1, 4]); }); - test.skip('ignores non present values', () => { + test('ignores non present values', () => { expect(removeFromArray([1, 2, 3, 4], 7, "tacos")).toEqual([1, 2, 3, 4]); }); - test.skip('ignores non present values, but still works', () => { + test('ignores non present values, but still works', () => { expect(removeFromArray([1, 2, 3, 4], 7, 2)).toEqual([1, 3, 4]); }); - test.skip('can remove all values', () => { + test('can remove all values', () => { expect(removeFromArray([1, 2, 3, 4], 1, 2, 3, 4)).toEqual([]); }); - test.skip('works with strings', () => { + test('works with strings', () => { expect(removeFromArray(["hey", 2, 3, "ho"], "hey", 3)).toEqual([2, "ho"]); }); - test.skip('only removes same type', () => { + test('only removes same type', () => { expect(removeFromArray([1, 2, 3], "1", 3)).toEqual([1, 2]); }); });