3 回答
TA贡献1833条经验 获得超4个赞
是什么a.index?你的意思是数组索引?
我想你只是想在数组中找到项目的索引,然后在下一个索引处取对象:
nextOrder() {
const index = this.orders.findIndex(order => order.order_id === 234)
if (index === -1 || index === this.orders.length - 1) {
// No such order or no next order
return null
}
return this.orders[index + 1]
}
上一个订单在 index 处index - 1,下一个订单在 index 处index + 1。要检查任一顺序是否存在,您只需要检查索引是否在数组的范围内。i只要 ,索引就在数组的范围内0 <= i <= (orders.length - 1)。
如果index - 1 >= 0(不能为负索引)且index - 1 <= array.length - 1(不能大于数组的最后一个索引),则存在前一个顺序。
TA贡献1856条经验 获得超5个赞
试试下面的代码,
let id = 234; // your id let index = this.orders.findIndex(order => order.some_id === id); console.log(this.orders[index + 1]); // give you the next object
TA贡献1848条经验 获得超2个赞
你可以简单地使用findIndex
let arr = [{order_id: 234, text: 'foo'},{ order_id: 567, text: 'bar'}]
let findNextOrder = (id) => {
let index = arr.findIndex(({ order_id }) => order_id === id)
return index > -1 && index < arr.length - 1 ? arr[index + 1] : undefined
}
console.log(findNextOrder(234))
您不需要根据您对问题的评论进行排序,您的对象上也没有名为 index 的属性。
添加回答
举报