我有一個JSON對象數組,我想找到具有某個屬性的對象。我知道這可能看起來像重複的問題,但請繼續,因爲我認爲它與以前的問題略有不同。JavaScript中的IndexOf方法比遍歷數組更有效嗎?
與我合作的人建議使用IndexOf,這讓我想到了。有沒有類似於mongo中的$ elemMatch功能?是否有一些命令基本上用僞代碼表示「用這個屬性從這個數組中獲取對象」?通過迭代,我覺得僞代碼說:「看看這個數組中的第一個對象,如果這個對象有這個屬性,請把這個對象給我,如果沒有,看看這個數組中的第二個對象..... 「
我明白如何使用IndexOf就像我的朋友建議的那樣,但我越想到它,我開始認爲IndexOf方法可能是更少的代碼行,但它最終不必遍歷對象在數組中找到我需要的索引?所以,如果我想用這個屬性對對象做些什麼,並且我使用IndexOf方法來獲取索引,那麼我會引用像myArray [indexFromIndexOfMethod]這樣的對象,然後相應地修改它,是否正確?所以,如果javascript迭代數組本身來執行IndexOf方法,爲什麼不寫我自己的迭代並保存一個步驟?現在,如果IndexOf方法使用更有效的定位數組元素的方法,而不是遍歷並檢查每個元素,那麼使用它就有意義。否則,如果通過簡單的迭代可以獲得相同的結果,則使用IndexOf方法是沒有意義的。
我需要一個更好的解釋,爲什麼它使用'indexOf'是不合理的,因爲你可以編寫自己的迭代和已經寫好的代碼。 –
不知道如何不使用'indexOf'會爲你節省任何東西。有了它,你不必編寫循環,它爲你做循環。 –
但是我想要使用該對象的操作可能發生在對象位於數組中的那一刻。所以如果我寫我自己的迭代,我可以將所有這些東西添加到函數中。如果我使用IndexOf,那麼javascript會做任何事情來查找我正在查找的元素的索引,然後當完成時,我可以使用生成的索引來獲取該對象。所以如果IndexOf不比迭代更有效,我可以將這兩個步驟合併爲一個。 – bigchrisf