我有10个对象的数组。

当我在弹出窗口中打开某些对象时,需要知道数组中的下一个或上一个对象是数组中的最后一个还是第一个。

并且如果是数组的第一个或最后一个,则需要禁用下一个或上一个按钮。

问题是某些文档具有相同的ID,因此我按ID检查对象的索引:

const index = documents.findIndex((item) => item.id === id);

然后,如果我在数组中的第一个和第四个对象具有相同的ID,它将返回索引:0,始终:

如何使这项工作按预期进行?

该数组只是示例:

documents = [
 {id: 'TEST1', name: 'TEST1'},
 {id: '2', name: '2'},
 {id: '3', name: '3'},
 {id: 'TEST1', name: 'TEST1'},
 {id: '4', name: '4'},
 {id: '5', name: '5'}
]


稍后,我使用index禁用或启用上一个或下一个按钮。

最佳答案

使用Array.indexOf()通过引用查找当前项目的索引:



const documents = [{"id":"TEST1","name":"TEST1"},{"id":"2","name":"2"},{"id":"3","name":"3"},{"id":"TEST1","name":"TEST1"},{"id":"4","name":"4"},{"id":"5","name":"5"}];

const current = documents[3];

const index = documents.indexOf(current);

console.log(index);

07-24 18:08
查看更多