Javascript 将随机元素的索引正确存储在数组中

Javascript 将随机元素的索引正确存储在数组中,javascript,arrays,loops,variables,indexof,Javascript,Arrays,Loops,Variables,Indexof,我得到了一个数组a,它由节点对象填充。例如,我的屏幕上有200个节点,所有节点都保存在这个数组中。这些节点由单独的索引a[0]、a[1]、etc标记。现在,当我选择一些随机节点(例如具有最短路径)并将它们存储在第二个数组b中时,它看起来像b=[object,object,object,object…], 有没有办法自动返回数组a中的位置?例如,当我单击位于数组a中第三个位置的随机节点时,这意味着位于a[2],然后我希望自动返回或存储该位置,可能在第三个数组c中。最后,它可能看起来像:c=[a[2

我得到了一个数组
a
,它由节点对象填充。例如,我的屏幕上有200个节点,所有节点都保存在这个数组中。这些节点由单独的索引
a[0]、a[1]、
etc标记。现在,当我选择一些随机节点(例如具有最短路径)并将它们存储在第二个数组
b
中时,它看起来像
b=[object,object,object,object…]

有没有办法自动返回数组
a
中的位置?例如,当我单击位于数组
a
中第三个位置的随机节点时,这意味着位于
a[2]
,然后我希望自动返回或存储该位置,可能在第三个数组
c
中。最后,它可能看起来像:
c=[a[2],a[6],a[18],a[7],a[0]…]
。希望有人能帮我解决我的问题。非常感谢

我不确定数组的格式以及对象包含的内容。使用indexOf可能是一种解决方案


使用索引如果您可以使用在第二个数组中单击的对象搜索第一个数组,则可以将其推送到第三个数组。

如果我正确理解您的问题,您的数组
a
如下所示:

a = [{id:1} , {id:2} , {id:3} , {id:4}]
然后随机单击元素,以便将它们存储在数组
b
中,如下所示:

b = [{id:3}, {id:1}]
所以最终你想记住a[2]存储在位置b[0],a[0]存储在位置b[1]的信息,对吗

您可以做的不是将整个对象存储在
b
中,而是仅存储它们的id:

b = [3, 1]
通过这种方式,您可以轻松找到他们所处的位置:

findPosition(node){
 return b.indexOf( node.id )
}

console.log(findPosition(a[2])) // 0

如何获得
b
?嘿,我使用d3.js方法返回最短路径。但是当我
console.log(b)
时,它会说
[object,object,object,object….]
嘿,我的数组看起来像这样
a=[object,object,object,object….]
。但是每个对象都有一个索引。是的,那么呢?看起来它符合我的建议,不是吗?它起作用了吗?