JavaScript 中的列舉器

Shraddha Paghdar 2023年1月30日 2022年5月11日
  1. 在 JavaScript 中使用陣列建立列舉器
  2. 在 JavaScript 中使用 for 迴圈建立一個列舉器
JavaScript 中的列舉器

列舉是 C 語言中最流行的自定義資料型別之一,它允許對整數常量進行命名,使程式易於閱讀和維護。Native JavaScript 沒有傳統的 Enum 資料型別,而是在 TypeScript 中引入。

在今天的帖子中,我們將瞭解原生 JavaScript 中的列舉器。

在 JavaScript 中使用陣列建立列舉器

JavaScript 陣列是具有預定義屬性的特殊物件。這些是可以分配給作為輸入引數傳遞的值的數值屬性。

JavaScript 提供了幾種處理陣列的方法。一些最流行的陣列方法是 .push().pop().map().reverse() 等。

JavaScript 中的 indexOf

這是 JavaScript 的內建方法。此方法採用陣列值並通過遍歷整個陣列返回索引/屬性。

如果找到多個匹配值,則返回第一個匹配值索引。如果沒有找到值,則返回 -1。執行的搜尋操作是使用 === 運算子的 strict 搜尋。

語法:

indexOf(searchElement)
indexOf(searchElement, fromIndex)

此方法遍歷陣列以查詢作為輸入傳遞的 searchElement。我們從某個索引開始搜尋,然後傳遞 fromIndex

這個 fromIndex 跳過指定索引之前的元素並從此索引開始搜尋。如果此索引在陣列範圍之外,則返回 -1,這意味著無法搜尋該值。

有關更多資訊,請閱讀有關 indexOf 方法的更多資訊。

const osConfig = ["Linux","MacOS","Windows", "Ubuntu"];
console.log(osConfig.indexOf("Linux"));

在上面的示例程式碼中,我們定義了 OS 陣列的四個值。當你傳遞 indexOf("Linux") 時,它將迭代 osConfig,檢查 osConfig 中的所有值。

上面程式碼的輸出將如下所示。

輸出:

0

在 JavaScript 中使用 for 迴圈建立一個列舉器

建立列舉的另一種方法是使用 for 迴圈。

使用者可以建立接受輸入引數的函式,並使用 for 迴圈遍歷這些引數。然後使用每個引數建立物件,以鍵為引數,以值為索引或迭代次數。

function Enum(){
    for( let i = 0; i < arguments.length; ++i ){
        this[arguments[i]] = i;
    }
    return this;
}
const config = {};
config.type = new Enum("Linux","MacOS","Windows", "Ubuntu");

console.log(config);
console.log(config.type.Linux);

在上面的例子中,我們建立了 Enum 函式,它接受引數並一個一個地迭代引數,建立本地物件。當你執行上面的程式碼時,你將獲得以下輸出。

輸出:

{ type: Enum { Linux: 0, MacOS: 1, Windows: 2, Ubuntu: 3 } }
0
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn