首頁 > web前端 > js教程 > 如果沒有專用的「range()」函數,JavaScript 如何產生數字和字元範圍?

如果沒有專用的「range()」函數,JavaScript 如何產生數字和字元範圍?

Barbara Streisand
發布: 2024-12-10 22:26:10
原創
932 人瀏覽過

How Can JavaScript Generate Numeric and Character Ranges Without a Dedicated `range()` Function?

JavaScript 內建的產生範圍的功能

在PHP 中,range() 函數用於產生指定範圍內的值的陣列界限。 JavaScript 沒有直接的等效項,但可以使用本機方法來實現類似的功能。

數字範圍

要建立數字範圍,您可以使用以下技術:

[...Array(5).keys()]; // [0, 1, 2, 3, 4]
登入後複製

此程式碼產生一個從0 到4 的值數組(包含)。

字元範圍

對於字元範圍,請使用以下方法:

String.fromCharCode(...[...Array('D'.charCodeAt(0) - 'A'.charCodeAt(0) + 1).keys()].map(i => i + 'A'.charCodeAt(0))); // "ABCD"
登入後複製

此程式碼產生字元 " A」至「D」。

迭代範圍

或者,您可以使用迭代來產生範圍:

for (const x of Array(5).keys()) {
  console.log(x, String.fromCharCode('A'.charCodeAt(0) + x));
} // 0,"A" 1,"B" 2,"C" 3,"D" 4,"E"
登入後複製

此程式碼迭代從0 到4 的數字並列印相應的字元。

創建範圍函數

創建可重用範圍函數,您可以執行以下操作:

function range(size, startAt = 0) {
    return [...Array(size).keys()].map(i => i + startAt);
}

function characterRange(startChar, endChar) {
    return String.fromCharCode(...range(endChar.charCodeAt(0) -
            startChar.charCodeAt(0), startChar.charCodeAt(0)))
}
登入後複製

第三方庫

lodash.js 函式庫提供了一個_.range()函數,可以簡化範圍產生:

_.range(10); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
登入後複製

舊版瀏覽器相容性

對於不支援ES6的舊版瀏覽器,請使用下列程式碼:

Array.apply(null, Array(5)).map(function (_, i) {return i;}); // [0, 1, 2, 3, 4]
登入後複製

以上是如果沒有專用的「range()」函數,JavaScript 如何產生數字和字元範圍?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板