Maison >interface Web >js tutoriel >JavaScript offre-t-il une fonction de plage intégrée comme « range() » de PHP ?

JavaScript offre-t-il une fonction de plage intégrée comme « range() » de PHP ?

DDD
DDDoriginal
2024-12-09 19:46:15273parcourir

Does JavaScript Offer a Built-in Range Function Like PHP's `range()`?

JavaScript a-t-il une fonction de plage intégrée comme "range()" de PHP ?

En PHP, la fonction range() est utilisé pour générer un tableau de valeurs dans une plage spécifiée, numérique ou alphanumérique. Cependant, JavaScript ne fournit pas de fonction native similaire. Cet article explique comment implémenter une telle fonctionnalité en JavaScript.

Plages numériques

Pour générer une plage de nombres, vous pouvez utiliser Array.from() et Array. méthodes key() combinées :

[...Array(5).keys()]; // [0, 1, 2, 3, 4]

Cela crée un tableau contenant des valeurs d'index de 0 à 4, représentant le nombre numérique souhaité range.

Plages de caractères

Pour les plages de caractères, vous pouvez utiliser la méthode String.fromCharCode() avec la méthode charCodeAt() pour convertir les codes de caractères en caractères :

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

Itération

Vous pouvez également utiliser une boucle for pour itérer sur une plage de valeurs :

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"

Fonctions

Pour résumer le processus de génération de plage, vous pouvez créer des fonctions personnalisées :

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

Si vous utilisez la bibliothèque Lodash, vous pouvez utiliser sa fonction _.range() à cet effet :

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

Compatibilité avec les navigateurs non ES6

Dans les navigateurs plus anciens sans support ES6, vous pouvez utiliser cette alternative :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn