javascript - Javascript 排序数组 ERROR TypeError: undefined is not an object
问题描述
嘿伙计们。
我试图弄清楚为什么我的代码不起作用,我根本找不到任何原因。我正在尝试按某些属性对数组进行排序,但出现此错误: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),它可以正常工作而不会引发任何错误
解决方案
我认为 sort 方法正在不同的范围内运行。试试这个:
this.myarray.sort(this.compareDates.bind(this));
推荐阅读
- symfony - Symfony 连接表
- python - 删除几乎相同的行 numpy 数组
- git - 如何在不使用 git reflog 的情况下恢复丢失的提交?
- api - Jira API 未过滤字段
- python-3.x - Python 3:抛出 NameError 的递归错误(BST 问题)
- spring - 使用 CrudRepository#getOne() 时如何检查是否存在
- java - Apache Common Math、Lombok、Apache Common Lang、Slf4j 是纯 Java 吗?
- java - 即使没有直接初始化,Java 也会创建对象吗?
- php - 将ul li列表转换为字符串路径
- java - 是什么导致 Android Studio 将 FragmentManager 标记为已弃用?