我在TypeScript中定义了en数组:
caseLocations: Array<CaseLocation>()
caseLocations获取以下数据:
{0:{...},1:{...},2:{...},3:{...},4:{...}}
当我尝试运行时
state.results.caseLocations.splice(
state.results.caseLocations.findIndex((i) => i.objectid === action.objectId), 1
);
我收到错误:
caseLocations.findIndex不是函数
为什么它不起作用?我还尝试了.map
功能。同样的错误。
答案 0 :(得分:1)
caseLocations
是一个对象,但数字为键。
您可以知道,因为您提供给我们{}
的数据的括号表示它是一个对象。
如果它是一个数组,它应该是这样的:[0: {…}, 1: {…}, 2: {…}, 3: {…}, 4: {…}]
。使用这些括号:[]
。
答案 1 :(得分:1)
caseLocations
是一个对象,而不是一个数组。要使用splice
或findIndex
等数组方法,必须先使用Object.values()
函数将其转换为数组:
state.results.caseLocations = Object.values(state.results.caseLocations);
state.results.caseLocations.splice(
state.results.caseLocations.findIndex((i) => i.objectid === action.objectId), 1
);