Linked list removeAt method

Tell us what’s happening:
I don’t know why it is not passing test highlighted loop test only
I don’t understand what exactly it wants

Your code so far


function LinkedList() {
var length = 0;
var head = null;

var Node = function(element){
  this.element = element;
  this.next = null;
};

this.size = function(){
  return length;
};

this.head = function(){
  return head;
};

this.add = function(element){
  var node = new Node(element);
  if(head === null){
    head = node;
  } else {
    var currentNode = head;

    while(currentNode.next){
      currentNode  = currentNode.next;
    }

    currentNode.next = node;
  }

  length++;
};

// Only change code below this line
this.removeAt = function(index) {
  var count = 0 ;
  var current = head ;
  var target ;
  var prev ;
  > if (this.size() == 1) {
>     let copy = head
>     delete head.element ;
>     delete head.next;
>     length--
>     return copy.element ;
>   }
  else if (index <0 || index >= this.size()) 
  return null ;
  else {
    while (current ){
      prev = current 
      if (prev ){
      if (index == count){
          target = current.element ;
        }
       count++;
      }current = prev.next
    }
  }
  var currentNode = head;
  var previousNode;
  if(currentNode.element === target){
    head = currentNode.next;
    length--
    return currentNode.element
  } else {
    while(currentNode.element !== target) {
      previousNode = currentNode;
      currentNode = currentNode.next;
      
    }

    previousNode.next = currentNode.next;
    length--
    return currentNode.element
    
  }
}
// Only change code above this line
}
let exp = new LinkedList() 
exp.add('first') ;
// exp.add('second') ;
// exp.add('third') ;
exp.removeAt(1)
console.log(exp.head(),exp.size())

Your browser information:

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

Challenge: Remove Elements from a Linked List by Index

Link to the challenge: