在Javascript中为分配重新创建Lodash dropWhile()方法时遇到TypeError

时间:2018-11-04 23:08:37

标签: lodash

当我的dropWhile()方法调用drop()方法(如下)时,我在“ const dropArray = array.slice(n)”中收到错误:“ TypeError:arrayslice不是函数”。

我相信dropWhile()方法是正确的-因此这里不需要更改。

我已经尝试在drop()方法中解决TypeError并重新编写代码的问题-但请继续对此进行讨论-您能告诉我出什么问题了以及如何解决这个问题吗?我敢肯定这很简单...

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 :(得分:0)

我认为您忘记了在drop函数中传递数组:

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

应该是:

const dropArray = drop(array, dropNumber); 

现在发生的是,您的放置函数试图在此行找到的索引上调用slice

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

Here is a fiddle to illustrate