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

时间:2017-07-05 12:56:37

标签: javascript arrays loops variables indexof

我得到了一个由节点对象填充的数组a。例如,我的屏幕上有200个节点,所有节点都保存在这个数组中。这些节点由各个索引a[0], a[1],标记。现在,当我选择多个随机节点(例如,使用最短路径)并将它们存储在第二个类似b的{​​{1}}中时,  有没有办法自动返回数组b = [ object, object, object, object.....]中的位置?例如,当我单击位于数组a中第3个位置的随机节点时,意味着在a,那么我希望自动返回或存储此位置,可能在第三个数组中a[2]。最后,它看起来像:c。希望有人可以帮我解决我的问题。非常感谢!

2 个答案:

答案 0 :(得分:1)

我不确定数组的格式以及对象包含的内容。使用indexOf https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf可能是一种解决方案。

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

答案 1 :(得分:0)

如果我正确理解您的问题,您的数组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