在 JavaScript 中,有許多方法可以從舊對象創建新對象。創建一個與現有對象具有相同鍵但所有鍵均為小寫的新對象是一種常見的用例。當處理來自許多具有不規則鍵大小寫的源的數據時,這會很有幫助。在這篇博文中,我們將了解使用小寫鍵創建新對象的各種 JavaScript 方法。
但是,在此之前,請務必記住,雖然使用小寫鍵創建新對象在處理來自各種來源的數據時可能會有所幫助,但注意更改鍵大小寫可能產生的后果也很重要。
例如,它可能會破壞當前預期密鑰處于特定情況的代碼,或者可能會干擾預期密鑰處于特定情況的外部 API 或數據庫。在更改對象的鍵大小寫之前,請始終對您的代碼運行全面的測試,并考慮用例的特定要求。
Object.assign()
可以通過使用內置 JavaScript 方法 Object.assign() 將一個或多個現有對象連接在一起來創建新對象。通過生成一個與原始對象具有相同按鍵但所有按鍵均為小寫的新對象,也可以更改對象的按鍵外殼。使用 Object.assign() 創建具有小寫鍵的新對象的基本語法。
示例
<html> <body> <div id="myDiv"></div> <script> var original = {name: "John", AGE: 25}; var lowercase = Object.assign({}, original); document.getElementById("myDiv").innerHTML = JSON.stringify(lowercase); </script> </body> </html>
登錄后復制
在此示例中,函數 Object.assign() 生成一個新對象并為其賦予原始對象的屬性。舊對象中的相同鍵將出現在新對象中,但它們將是小寫的。
您可以使用 Object.keys() 函數遍歷原始對象的鍵,并將它們更改為小寫,然后再將它們傳遞給 Object.assign() –
示例
<html> <body> <div id="myDiv"></div> <script> var original = { name: "John", AGE: 25 }; var lowercase = Object.assign( {}, ...Object.keys(original).map((k) => ({ [k.toLowerCase()]: original[k], })) ); document.getElementById("myDiv").innerHTML = JSON.stringify(lowercase); </script> </body> </html>
登錄后復制
此方法使用 Object.keys() 方法來獲取原始對象的鍵數組。 Array.map() 方法用于迭代鍵并創建具有相同鍵但小寫的新對象。然后使用擴展運算符將新對象傳遞給 Object.assign()。
for-in 循環
使用 for-in 循環迭代原始對象的鍵并生成具有相同鍵但小寫的新對象是使用小寫鍵構建新對象的另一種方法。使用 for-in 循環創建具有小寫鍵的新對象的基本語法是 –
示例
<html> <body> <div id="myDiv"></div> <script> var original = { name: "John", AGE: 25 }; var lowercase = {}; for (var key in original) { lowercase[key.toLowerCase()] = original[key]; } document.getElementById("myDiv").innerHTML = JSON.stringify(lowercase); </script> </body> </html>
登錄后復制
在此示例中,toLowerCase() 函數用于將每個鍵從大寫更改為小寫,并將相關值分配給新對象。然后 for-in 循環遍歷原始對象的鍵。
JSON.parse() 和 JSON.stringify()
使用 JSON.parse() 和 JSON.stringify() 方法是使用小寫鍵創建新對象的第三種方法。當使用這些技術用小寫鍵構造新對象時,基本語法是 –
示例
<html> <body> <div id="myDiv"></div> <script> var original = { name: "John", AGE: 25 }; var lowercase = JSON.parse(JSON.stringify(original).toLowerCase()); document.getElementById("myDiv").innerHTML = JSON.stringify(lowercase); </script> </body> </html>
登錄后復制
在此示例中,使用 JSON.stringify() 方法將原始對象轉換為 JSON 字符串。然后使用 toLowerCase() 方法將 JSON 字符串中的所有鍵轉換為小寫。
最后,使用 JSON.parse() 方法將 JSON 字符串轉換回 JavaScript 對象。通過使用此方法,將創建一個新對象,該對象具有與原始對象相同的鍵,但所有鍵都是小寫的。
事實上,該方法需要將對象轉換為字符串并再次轉換回來,這使得它的效率不如前兩種方法。它也只適用于簡單的對象;它可能不適用于具有獨特屬性或方法的對象。
結論
在本文中,我們研究了使用小寫鍵構造新對象的各種 JavaScript 方法。生成與現有對象具有相同鍵但全部小寫的新對象的一種快速有效的方法是使用 Object.assign() 方法。迭代對象的鍵并生成具有相同鍵但小寫的新對象的另一種選擇是 for-in 循環。小寫鍵也可用于使用 JSON.parse() 和 JSON.stringify() 方法構建新對象,盡管此方法效率較低,并且可能不適用于所有類型的對象。
以上就是如何從指定對象創建一個新對象,其中所有鍵在 JavaScript 中都是小寫?的詳細內容,更多請關注www.92cms.cn其它相關文章!