在 JavaScript 中根據值獲取鍵
在給定的問題陳述中,我們必須編寫一個函式,該函式將幫助我們使用 Javascript 功能獲取給定值的鍵。所以基本上,在 Javascript 中,如果我們想從給定的物件中訪問鍵或值,我們可以透過點表示法或方括號表示法來訪問它。
理解問題陳述
問題陳述說我們必須從 Javascript 物件中的值中查詢鍵。這意味著我們給定一個 Javascript 物件和一個值,因此我們需要找到對映到物件中該值的相應鍵。
例如,我們有一個類似的 Javascript 物件
{ key1: 'value1', key2: 'value2', key3: value3, };
所以我們可以看到值,例如 value2,我們需要找到它的鍵,所以在這裡我們可以看到 value2 的鍵是 key2。
給定問題的邏輯
為了解決給定的問題,我們可以遍歷物件中的鍵值對,然後檢查當前值是否與給定值匹配。如果值匹配,我們可以返回給定值的相應鍵。假設給定物件中沒有匹配的值,那麼我們必須將輸出返回為 null,因為資料中沒有這樣的元素。
演算法
步驟 1 - 定義一個函式來獲取給定值的鍵。因此,傳遞兩個引數 - appObj 和 value。
步驟 2 - 因為我們必須找出鍵,所以為了儲存鍵,我們將宣告一個變數並使用 entries 方法初始化其值,並在該函式中傳遞 appObj,對於此資料,我們將找到鍵和值的匹配項。
步驟 3 - 定義一個條件塊來確定鍵物件的 value 是否等於鍵的實際 value。如果條件為真,則返回鍵。
步驟 4 - 如果未檢索到給定值,則返回的值為 null。
演算法程式碼
//function for getting the key of the given value function keyByValue(appObj, value) { const [key] = Object.entries(appObj).find(([key, val]) => val === value) || []; return key || null; } const appObj = { Application1: 'Learning', Application2: 'Ecommerce', Application3: 'Software', Application4: 'Business', Application5: 'School', }; const value1 = 'Ecommerce'; const value2 = 'Business'; const key1 = keyByValue(appObj, value1); const key2 = keyByValue(appObj, value2); console.log(key1); console.log(key2);
複雜度
該方法的時間複雜度為 O(n),因為在最壞情況下我們需要遍歷所有鍵值對。演算法消耗的空間是常數 O(1)。因為我們沒有使用任何額外的資料結構。
結論
因此,對於上面的程式碼,我們使用 for 迴圈在 Javascript 物件中搜索值並獲取相應的鍵。此函式的時間複雜度為 O(n),空間複雜度為 O(1)。