为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript排序数组错误TypeError:未定义不是对象

JavaScript排序数组错误TypeError:未定义不是对象

桃花长相依 2021-05-05 08:09:03
我试图弄清楚为什么我的代码无法正常工作,而我根本找不到任何原因。我正在尝试按某些属性对数组进行排序,但出现此错误:ERROR TypeError: undefined is not an object (evaluating 'this.utils')。这就是我使用我的排序方法的方式:  this.myarray.sort(this.compareDates);这是我的排序方法:private compareDates(firstModel: myModel, secondModel: myModel): number{    const firstDate = new Date(this.utils.stringFormatterForDate(firstModel.date));    const secondDate = new Date(this.utils.stringFormatterForDate(secondModel.date));    if(firstDate < secondDate){      return -1;    }    if(firstDate > secondDate){      return 1;    }  }“ utils”是我通过构造函数注入的服务。如果我在其他任何地方使用服务的方法(stringFormatterForDate),它都可以正常工作而不会引发任何错误
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

我认为排序方法正在其他范围内运行。试试这个:

this.myarray.sort(this.compareDates.bind(this));


查看完整回答
反对 回复 2021-05-13
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您需要先绑定this.compareDates到您的对象,然后再将其传递给sort。调用比较函数时,它不会传递上下文。

this.myarray.sort(this.compareDates.bind(this))


查看完整回答
反对 回复 2021-05-13
  • 3 回答
  • 0 关注
  • 174 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信