Write a completely new function that passes all tests

This commit is contained in:
borobor 2022-02-19 23:04:07 +01:00
parent 167042a03b
commit 9b1f10068a
2 changed files with 30 additions and 9 deletions

View File

@ -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;

View File

@ -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]);
});
});