首页 > 解决方案 > JavaScript:获取数组中一项的索引,并计算如果数组反转,相同项的索引是多少?

问题描述

设置

我有一个名为 Elements 的对象数组。它们在视觉上像 Photoshop 文档中的图层一样布局。为简洁起见,我已经从每个元素中删除了大部分数据。但是每个元素的数据都会发生变化,因为它们都是不同的。

elements = [
    {
        name: 'First Piece',
    },
    {
        name: 'Second',
    },
    {
        name: 'Third', 
    },
    {
        name: 'Fourth', // is selected
    },
    {
        name: 'Fifth',
    },
]

我使用所选项目的索引来跟踪在对象中选择了哪个元素。我使用索引是因为它在任何给定时间或元素被表示的地方总是可供我使用。该对象看起来像这样,没有不相关的数据:

selected = {
    element: 3,
}

这一切都很好。

问题

问题在于可以被认为是我的图层面板。当元素在“画布”上时,它们的顺序正确,每个元素都具有更高的 z-index。但是在图层面板中,我必须反转数组,以便它在视觉上有意义。所以“第五”元素在顶部。

问题是当我需要获取 selected 的值并将其应用于反转元素数组时。

elementsReversed = [
    {
        name: 'Fifth',
    },
    {
        name: 'Fourth',   // this should be selected
    },
    {
        name: 'Third',
    },
    {
        name: 'Second',   // would be selected
    },
    {
        name: 'First Piece',
    },
]

我不能使用 .findIndex() 因为名称可以设置为相同的值(出于某种原因),并且实际上没有其他属性可以用来搜索反向数组并以这种方式查找索引。我试图避免向我的对象添加另一个键/值对,例如 ID。

有没有办法做到这一点?我只是一个笨蛋吗?

谢谢你。

标签: javascriptarrays

解决方案


推荐阅读