簡體   English   中英

如何在javascript中存儲常量值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM