javascript - 如何检查对象是否不是数组中的第一个或最后一个但有重复项?

标签 javascript arrays object

我有一个包含 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 禁用或启用上一个或下一个按钮。

最佳答案

你可以使用 .filter 来获取你想要的 id 的所有值, 例如:

let 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 things = documents.filter((documents) => documents.name === id)

console.log(things)

关于javascript - 如何检查对象是否不是数组中的第一个或最后一个但有重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59501955/

相关文章:

javascript - 某种 "method"用于读取元素是在两页还是一页上

PHP - 重新格式化多维数组以插入到 MYSQL 中?

javascript - JS : Sort object array by creating a kind of map

java - 成员变量是否像对象的特性?

java - 重用单个对象而不是创建新对象

javascript - HTML 页面的打印问题

javascript - 如何修复 .hover 效果卡住

javascript - 如何在 IIFE 中包装构造函数并将实例放置在 Window 对象上?

javascript - 尝试返回二叉树的层序遍历

php - 如何在 PHP 中的对象中间插入一个项目?