在 JavaScript 中,有許多方法可以從舊對(duì)象創(chuàng)建新對(duì)象。創(chuàng)建一個(gè)與現(xiàn)有對(duì)象具有相同鍵但所有鍵均為小寫(xiě)的新對(duì)象是一種常見(jiàn)的用例。當(dāng)處理來(lái)自許多具有不規(guī)則鍵大小寫(xiě)的源的數(shù)據(jù)時(shí),這會(huì)很有幫助。在這篇博文中,我們將了解使用小寫(xiě)鍵創(chuàng)建新對(duì)象的各種 JavaScript 方法。
但是,在此之前,請(qǐng)務(wù)必記住,雖然使用小寫(xiě)鍵創(chuàng)建新對(duì)象在處理來(lái)自各種來(lái)源的數(shù)據(jù)時(shí)可能會(huì)有所幫助,但注意更改鍵大小寫(xiě)可能產(chǎn)生的后果也很重要。
例如,它可能會(huì)破壞當(dāng)前預(yù)期密鑰處于特定情況的代碼,或者可能會(huì)干擾預(yù)期密鑰處于特定情況的外部 API 或數(shù)據(jù)庫(kù)。在更改對(duì)象的鍵大小寫(xiě)之前,請(qǐng)始終對(duì)您的代碼運(yùn)行全面的測(cè)試,并考慮用例的特定要求。
Object.assign()
可以通過(guò)使用內(nèi)置 JavaScript 方法 Object.assign() 將一個(gè)或多個(gè)現(xiàn)有對(duì)象連接在一起來(lái)創(chuàng)建新對(duì)象。通過(guò)生成一個(gè)與原始對(duì)象具有相同按鍵但所有按鍵均為小寫(xiě)的新對(duì)象,也可以更改對(duì)象的按鍵外殼。使用 Object.assign() 創(chuàng)建具有小寫(xiě)鍵的新對(duì)象的基本語(yǔ)法。
示例
<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>
登錄后復(fù)制
在此示例中,函數(shù) Object.assign() 生成一個(gè)新對(duì)象并為其賦予原始對(duì)象的屬性。舊對(duì)象中的相同鍵將出現(xiàn)在新對(duì)象中,但它們將是小寫(xiě)的。
您可以使用 Object.keys() 函數(shù)遍歷原始對(duì)象的鍵,并將它們更改為小寫(xiě),然后再將它們傳遞給 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>
登錄后復(fù)制
此方法使用 Object.keys() 方法來(lái)獲取原始對(duì)象的鍵數(shù)組。 Array.map() 方法用于迭代鍵并創(chuàng)建具有相同鍵但小寫(xiě)的新對(duì)象。然后使用擴(kuò)展運(yùn)算符將新對(duì)象傳遞給 Object.assign()。
for-in 循環(huán)
使用 for-in 循環(huán)迭代原始對(duì)象的鍵并生成具有相同鍵但小寫(xiě)的新對(duì)象是使用小寫(xiě)鍵構(gòu)建新對(duì)象的另一種方法。使用 for-in 循環(huán)創(chuàng)建具有小寫(xiě)鍵的新對(duì)象的基本語(yǔ)法是 –
示例
<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>
登錄后復(fù)制
在此示例中,toLowerCase() 函數(shù)用于將每個(gè)鍵從大寫(xiě)更改為小寫(xiě),并將相關(guān)值分配給新對(duì)象。然后 for-in 循環(huán)遍歷原始對(duì)象的鍵。
JSON.parse() 和 JSON.stringify()
使用 JSON.parse() 和 JSON.stringify() 方法是使用小寫(xiě)鍵創(chuàng)建新對(duì)象的第三種方法。當(dāng)使用這些技術(shù)用小寫(xiě)鍵構(gòu)造新對(duì)象時(shí),基本語(yǔ)法是 –
示例
<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>
登錄后復(fù)制
在此示例中,使用 JSON.stringify() 方法將原始對(duì)象轉(zhuǎn)換為 JSON 字符串。然后使用 toLowerCase() 方法將 JSON 字符串中的所有鍵轉(zhuǎn)換為小寫(xiě)。
最后,使用 JSON.parse() 方法將 JSON 字符串轉(zhuǎn)換回 JavaScript 對(duì)象。通過(guò)使用此方法,將創(chuàng)建一個(gè)新對(duì)象,該對(duì)象具有與原始對(duì)象相同的鍵,但所有鍵都是小寫(xiě)的。
事實(shí)上,該方法需要將對(duì)象轉(zhuǎn)換為字符串并再次轉(zhuǎn)換回來(lái),這使得它的效率不如前兩種方法。它也只適用于簡(jiǎn)單的對(duì)象;它可能不適用于具有獨(dú)特屬性或方法的對(duì)象。
結(jié)論
在本文中,我們研究了使用小寫(xiě)鍵構(gòu)造新對(duì)象的各種 JavaScript 方法。生成與現(xiàn)有對(duì)象具有相同鍵但全部小寫(xiě)的新對(duì)象的一種快速有效的方法是使用 Object.assign() 方法。迭代對(duì)象的鍵并生成具有相同鍵但小寫(xiě)的新對(duì)象的另一種選擇是 for-in 循環(huán)。小寫(xiě)鍵也可用于使用 JSON.parse() 和 JSON.stringify() 方法構(gòu)建新對(duì)象,盡管此方法效率較低,并且可能不適用于所有類(lèi)型的對(duì)象。
以上就是如何從指定對(duì)象創(chuàng)建一個(gè)新對(duì)象,其中所有鍵在 JavaScript 中都是小寫(xiě)?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!