Получение TypeError при воссоздании метода Lodash dropWhile () в Javascript для назначения - PullRequest
0 голосов
/ 05 ноября 2018

Я получаю сообщение об ошибке: "TypeError: arrayslice не является функцией" в "const dropArray = array.slice (n)", когда мой метод dropWhile () вызывает метод drop () (ниже).

Я уверен, что метод dropWhile () правильный, поэтому никаких изменений здесь не требуется.

Я пытался решить проблему TypeError в методе drop () и переработать код - но продолжайте в том же духе - вы можете сказать мне, что идет не так и как это исправить? Я уверен, что это что-то простое ...

drop: function(array,n){
    if( n ===undefined){
      var n = 1;
    }
    const droppedArray = array.slice(n);
    return droppedArray;
},

dropWhile: function(array,predicate){
  const dropNumber = array.findIndex(function(element, index){
    return !predicate(element, index, array)
  });

  const dropArray = this.drop(dropNumber); 
  return dropArray; 

}

1 Ответ

0 голосов
/ 05 ноября 2018

Я думаю, что вы забыли передать массив в drop функции:

const dropArray = drop(dropNumber);   // <-- missing the array param

Должно быть:

const dropArray = drop(array, dropNumber); 

Что происходит сейчас, если ваша функция отбрасывания пытается вызвать slice для индекса, найденного в этой строке:

const dropNumber = array.findIndex(function(element, index){

Вот скрипка для иллюстрации

...