我有一个JSON对象数组,我想找到具有某个属性的对象。我知道这可能看起来像重复的问题,但请继续,因为我认为它与以前的问题略有不同。JavaScript中的IndexOf方法比遍历数组更有效吗?
与我合作的人建议使用IndexOf,这让我想到了。有没有类似于mongo中的$ elemMatch功能?是否有一些命令基本上用伪代码表示“用这个属性从这个数组中获取对象”?通过迭代,我觉得伪代码说:“看看这个数组中的第一个对象,如果这个对象有这个属性,请把这个对象给我,如果没有,看看这个数组中的第二个对象..... “
我明白如何使用IndexOf就像我的朋友建议的那样,但我越想到它,我开始认为IndexOf方法可能是更少的代码行,但它最终不必遍历对象在数组中找到我需要的索引?所以,如果我想用这个属性对对象做些什么,并且我使用IndexOf方法来获取索引,那么我会引用像myArray [indexFromIndexOfMethod]这样的对象,然后相应地修改它,是否正确?所以,如果javascript迭代数组本身来执行IndexOf方法,为什么不写我自己的迭代并保存一个步骤?现在,如果IndexOf方法使用更有效的定位数组元素的方法,而不是遍历并检查每个元素,那么使用它就有意义。否则,如果通过简单的迭代可以获得相同的结果,则使用IndexOf方法是没有意义的。
我需要一个更好的解释,为什么它使用'indexOf'是不合理的,因为你可以编写自己的迭代和已经写好的代码。 –
不知道如何不使用'indexOf'会为你节省任何东西。有了它,你不必编写循环,它为你做循环。 –
但是我想要使用该对象的操作可能发生在对象位于数组中的那一刻。所以如果我写我自己的迭代,我可以将所有这些东西添加到函数中。如果我使用IndexOf,那么javascript会做任何事情来查找我正在查找的元素的索引,然后当完成时,我可以使用生成的索引来获取该对象。所以如果IndexOf不比迭代更有效,我可以将这两个步骤合并为一个。 – bigchrisf