[英]how to store const value in javascript
我正在嘗試為項目創建一個隨機名稱並將其存儲在一個變量中,並在其他文件中獲取相同的值。即 Name = 'MyName-abcd' 是在獲取新值時生成的,就像 Name = 'MyName-efgh' 一樣,同時獲取它也會生成一個隨機值。
我嘗試使用 const 來存儲並使用本地存儲來 getItem 兩種情況我都得到了不同的值
我想要一次隨機名稱並在所有文件中使用相同的生成名稱。
construct.js class ConstructPage { // Constants.real_PROJECT_NAME + this.randomName(5) randomName(length) { var result = ''; var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; var charactersLength = characters.length; for (var i = 0; i < length; i++) { result += characters.charAt(Math.floor(Math.random() * charactersLength)); } return result; } } export default ConstructPage; constant.js export const random_Name = new ConstructPage().randomName(5); export const real_PROJECT_NAME = 'cypress-budgeting-' + random_Name; export const fetch_project_Name = localStorage.setItem('real_api_project_name', real_PROJECT_NAME); export const get_project_Name = localStorage.getItem('real_api_project_name');
第一次生成隨機名稱並將其存儲在本地存儲中,因此下次再次發生的情況將生成一個新名稱並在本地存儲中更新,這就是您每次獲得不同名稱的原因。
因此,生成一次隨機名稱並將其存儲在本地存儲中,下次從本地存儲訪問該名稱但不要再次生成名稱。
據我了解,您希望生成一個隨機名稱,並在調用 randomName 時返回它。 為此,您可以創建一個附加到 randomName 函數的靜態變量。
randomName(length) {
if (randomName.result) {
return randomName.result;
}
randomName.result = '';
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
randomName.result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return randomName.result;
}
由於函數是一個對象,它可以具有在執行之間保持不變的屬性。 如果您想為不同的長度使用不同的名稱,您可以使您的屬性成為一個將長度映射到名稱的對象,並在生成新名稱之前檢查映射是否存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.