Refactor Global Variables Out of Functions - return [...arr] not working

Tell us what’s happening:

I don’t get why my code fails (2 and 4 checks) for the add function… whereas it worked on on JSBIN : https://jsbin.com/hagicuramu/edit?js,console,output

Your code so far


// the global variable
var bookList = ["The Hound of the Baskervilles", "On The Electrodynamics of Moving Bodies", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae"];

/* This function should add a book to the list and return the list */
// New parameters should come before the bookName one

// Add your code below this line
function add (bookList, bookName) {
 return [...bookList].push(bookName);
  // Add your code above this line
}

/* This function should remove a book from the list and return the list */
// New parameters should come before the bookName one

// Add your code below this line
function remove (bookList, bookName) {
  let list = [...bookList]; 
  if (list.indexOf(bookName) >= 0) {
    
    list.splice(list.indexOf(bookName), 1);
    return list;
    // Add your code above this line
    }
  return list;
}

var newBookList = add(bookList, 'A Brief History of Time');
var newerBookList = remove(bookList, 'On The Electrodynamics of Moving Bodies');
var newestBookList = remove(add(bookList, 'A Brief History of Time'), 'On The Electrodynamics of Moving Bodies');

console.log(bookList);

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36.

Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/functional-programming/refactor-global-variables-out-of-functions

This function should add a book to the list and return the list

This function does not return the list:

function add (bookList, bookName) {
  return [...bookList].push(bookName);
}
1 Like

Those two are the add functions

Read better on push(), what does it return?

1 Like

oh… thanks… =D this basic method… ok, will pay more attentions to these.