Javascript .findIndex不是对象数组的函数

Javascript .findIndex不是对象数组的函数,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我在TypeScript中定义en数组: caseLocations: Array<CaseLocation>() 我得到一个错误: caseLocations.findIndex不是一个函数 为什么它不起作用?我还尝试了.map函数。同样的错误。caseLocations是一个对象,但以数字作为键 您可以知道,因为您提供给我们的数据周围的括号表示它是一个对象 如果它是一个数组,它应该是这样的:[0:{…},1:{…},2:{…},3:{…},4:{…}]。使用这些括号:[]案例位

我在TypeScript中定义en数组:

caseLocations: Array<CaseLocation>()
我得到一个错误:

caseLocations.findIndex不是一个函数


为什么它不起作用?我还尝试了
.map
函数。同样的错误。

caseLocations是一个对象,但以数字作为键

您可以知道,因为您提供给我们的数据周围的括号表示它是一个对象


如果它是一个数组,它应该是这样的:
[0:{…},1:{…},2:{…},3:{…},4:{…}]
。使用这些括号:
[]

案例位置
是一个对象,而不是数组。要使用数组方法,如
splice
findIndex
,必须首先使用
对象将其转换为数组。value()
函数:

state.results.caseLocations = Object.values(state.results.caseLocations);

state.results.caseLocations.splice(
    state.results.caseLocations.findIndex((i) => i.objectid === action.objectId), 1
);

仅仅因为caseLocations不是数组,它对数组()的定义是错误的吗?那么我该如何定义呢?好吧,要么将定义更改为Object,要么将接收到的数据更改为数组。
state.results.caseLocations = Object.values(state.results.caseLocations);

state.results.caseLocations.splice(
    state.results.caseLocations.findIndex((i) => i.objectid === action.objectId), 1
);