讓我們有一個樣例數組,像[1,2,3,4,5,6,7,8,9,10,12,0,1,2, 3,4]如何在javascript中不迭代查找數組中的對象的索引
我想在這個數組中找到'0'的第一個匹配項,但沒有迭代。
所有的函數'like','map','grep','filter','some','對每個'每個元素迭代數組中的每個元素以找到相同的。考慮到大數據陣列考慮性能的瓶頸。
我已經嘗試了所有上述方法。 有人對此有任何想法嗎?謝謝你的時間。
讓我們有一個樣例數組,像[1,2,3,4,5,6,7,8,9,10,12,0,1,2, 3,4]如何在javascript中不迭代查找數組中的對象的索引
我想在這個數組中找到'0'的第一個匹配項,但沒有迭代。
所有的函數'like','map','grep','filter','some','對每個'每個元素迭代數組中的每個元素以找到相同的。考慮到大數據陣列考慮性能的瓶頸。
我已經嘗試了所有上述方法。 有人對此有任何想法嗎?謝謝你的時間。
如何找到數組對象的指數不反覆在JavaScript
這是不可能的。如果你有一個通用的值列表,你必須看看每個元素,直到找到你正在尋找的元素。
如果你想要O(1)
訪問,那麼你需要使用不同的數據結構。
我想知道bigData系統和分析在巨大列表時如何處理這種情況。它們的性能不會影響每個搜索 – Karthikvenkat86
@ Karthikvenkat86它們可能會將數據分片並使用散列來減少時間。 upvoted,因爲它應該是這個問題的答案。 – fuyushimoya
這樣的數據集可能有多個爲其定義的索引,以允許通過不同的搜索參數進行有效的訪問。想想一個簡單的數據庫表。主鍵始終編入索引以實現高效訪問。索引不過是一個'id - > value'映射。 –
如果數組的元素是一個數字或字符串,可以只使用indexOf()
的indexOf()比較searchElement(第一個參數),使用嚴格 平等陣列的元件(用同樣的方法由===或三等於, 運算符)。
var list = [1,2,3,4,5,6,7,8,9,10,12,0, 1, 2, 3,4 ];
var firstOccurence = list.indexOf(0);
沒有做任何搜索操作,你怎麼能搜索?至少使用類似hashtable的東西可能會有所幫助 – rajuGT
你根本無法用數組來實現這一點。甚至原生的'indexOf'也會進行內部迭代。 – Teemu
您可以減少迭代次數,例如。如果數據被排序,但總會發生一些迭代。 –