CoffeeScript - Plages
Dans le chapitre précédent, nous avons vu des tableaux dans CoffeeScript, lors de la programmation, nous ferons face à des scénarios où nous devons stocker une séquence de valeurs numériques dans un tableau comme indiqué ci-dessous.
numbers =[1,2,3,4,5,6,7,8,9,10]
CoffeeScript fournit un moyen plus court d'exprimer les tableaux contenant une séquence de valeurs numériques, appelée ranges. Cette fonctionnalité de CoffeeScript est inspirée de Ruby.
Syntaxe
Les plages sont créées par deux valeurs numériques, la première et la dernière position de la plage, séparées par .. ou .... Avec deux points (1..4), la plage est inclusive (1, 2, 3, 4); avec trois points (1 ... 4), la plage exclut la fin (1, 2, 3).
Ci-dessous, la syntaxe des plages dans CoffeeScript. Nous définirons les valeurs dans une plage entre accolades[ ]tout comme les tableaux. Dans les plages, tout en stockant une séquence de valeurs numériques, au lieu de fournir les valeurs de la séquence entière, nous pouvons simplement spécifier sonbegin et end valeurs séparées par deux points (..) comme indiqué ci-dessous.
range =[Begin..End]
Exemple
Voici un exemple de plages dans CoffeeScript. Enregistrez-le dans un fichier avec un nomranges_example.coffee.
numbers =[0..9]
console.log "The contents of the range are: "+ numbers
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c ranges_example.coffee
Lors de la compilation, il vous donne le JavaScript suivant. Ici, vous pouvez observer que la plage est convertie en tableau CoffeeScript complet.
// Generated by CoffeeScript 1.10.0
(function() {
var numbers;
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log("The contents of the range are:: " + numbers);
}).call(this);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee ranges_example.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante.
The contents of the range are:: 0,1,2,3,4,5,6,7,8,9
Hors valeur finale
Les plages sont compilées dans des tableaux complets contenant tous les nombres. Si nous voulons exclure leend valeur, alors nous devons séparer le start et end éléments de la gamme à l'aide de trois points (...) comme indiqué ci-dessous.
range =[Begin...End]
Exemple
Nous pouvons réécrire l'exemple ci-dessus en excluant le endvaleur comme indiqué ci-dessous. Enregistrez le contenu suivant dans un fichier avec un nomrange_excluding_end.coffee
numbers =[0...9]
console.log "The contents of the range are:: "+ numbers
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c ranges_example.coffee
Lors de la compilation, il vous donne le JavaScript suivant.
// Generated by CoffeeScript 1.10.0
(function() {
var numbers;
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8];
console.log("The contents of the range are:: " + numbers);
}).call(this);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee ranges_example.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante. Ici, vous pouvez observer que la valeur finale9 est exclu.
The contents of the range are:: 0,1,2,3,4,5,6,7,8
Utilisation de plages avec des variables
Nous pouvons également définir une plage en affectant les valeurs de début et de fin à des variables.
Exemple
Prenons l'exemple suivant. Ici, nous avons défini une plage à l'aide de variables. Enregistrez ce code dans un fichier avec un nomrange_variables.coffee
start=0
end=9
numbers =[start..end]
console.log "The contents of the range are: "+ numbers
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c range_variables.coffee
Lors de la compilation, il vous donne le JavaScript suivant.
// Generated by CoffeeScript 1.10.0
(function() {
var end, i, numbers, results, start;
start = 0;
end = 9;
numbers = (function() {
results = [];
for (var i = start; start <= end ? i <= end : i >= end; start <= end ? i++ : i--) {
results.push(i);
}
return results;
}).apply(this);
console.log("The contents of the range are:: " + numbers);
}).call(this);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee range_variables.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante. Ici, vous pouvez observer que la valeur finale9 est exclu.
The contents of the range are:: 0,1,2,3,4,5,6,7,8,9
Plages avec tableaux
Nous pouvons découper des tableaux en les utilisant avec des plages. Chaque fois que nous spécifions des plages immédiatement après des tableaux (variables), le compilateur CoffeeScript le convertit en unslice() appel de méthode de JavaScript.
Supposons que nous ayons un tableau ayant des valeurs numériques, disons de 0 à 9, alors nous pouvons en récupérer les 4 premiers éléments comme indiqué ci-dessous.
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
data = num[0..5]
Les valeurs négatives représentent les éléments de la fin, par exemple, -1 indique 9. Si nous spécifions un nombre négatif 3 suivi de deux points, les trois derniers éléments du tableau seront extraits.
data = num[-3..]
Si nous spécifions seulement deux points dans la plage d'un tableau comme num[..], puis le tableau complet sera extrait. Nous pouvons également remplacer un segment de tableau par d'autres éléments en utilisant des plages comme indiqué ci-dessous.
num[2..6] = [13,14,15,16,17]
Exemple
L'exemple suivant illustre l'utilisation de plages avec des tableaux. Enregistrez ce code dans un fichier avec un nomrange_arrays.coffee
#slicing an array using ranges
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
data = num[0..5]
console.log "The first four elements of the array : "+data
#Using negative values
data = num[-3..]
console.log "The last 3 elements of the array : "+data
#Extracting the whole array
console.log "Total elements of the array : "+num[..]
#Replacing the elements of an array
num[2..6] = [13,14,15,16,17]
console.log "New array : "+num
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c range_arrays.coffee
Lors de la compilation, il vous donne le JavaScript suivant. Ici, vous pouvez observer que toutes les plages sont converties en appels à la méthode slice () de JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var data, num, ref;
num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
data = num.slice(0, 6);
console.log("The first four elements of the array : " + data);
data = num.slice(-3);
console.log("The last 3 elements of the array : " + data);
console.log("Total elements of the array : " + num.slice(0));
[].splice.apply(num, [2, 5].concat(ref = [13, 14, 15, 16, 17])), ref;
console.log("New array : " + num);
}).call(this);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee range_arrays.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante. Ici, vous pouvez observer que la valeur finale9 est exclu.
The first four elements of the array : 1,2,3,4,5,6
The last 3 elements of the array : 7,8,9
Total elements of the array : 1,2,3,4,5,6,7,8,9
New array : 1,2,13,14,15,16,17,8,9
Gammes avec cordes
Nous pouvons également utiliser des plages avec des chaînes. Si nous spécifions des plages après Strings, CoffeeScript les coupe et renvoie un nouveau sous-ensemble de caractères.
Exemple
L'exemple suivant illustre l'utilisation de plages avec des chaînes. Ici, nous avons créé une chaîne et en avons extrait une sous-chaîne à l'aide de plages. Enregistrez ce code dans un fichier avec un nomranges_with_strings.coffee
my_string = "Welcome to tutorialspoint"
new_string = my_string[0..10]
console.log new_string
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c ranges_with_strings.coffee
Lors de la compilation, il vous donne le JavaScript suivant.
// Generated by CoffeeScript 1.10.0
(function() {
var my_string, new_string;
my_string = "Welcome to tutorialspoint";
new_string = my_string.slice(0, 6);
console.log(new_string);
}).call(this);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee ranges_with_strings.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante. Ici, vous pouvez observer que la valeur finale9 est exclu.
Welcome to
Compréhensions sur les gammes
En tant qu'objets et tableaux, nous pouvons également itérer les éléments d'une plage à l'aide de compréhensions.
Exemple
Voici un exemple d'utilisation de compréhensions sur des plages. Ici, nous avons créé une plage et récupéré les éléments qu'elle contient à l'aide de compréhensions. Enregistrez ce code dans un fichier avec le nomcomprehensions_over_ranges.coffee
numbers =[0..9]
console.log "The elements of the range are: "
console.log num for num in numbers
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c comprehensions_over_ranges.coffee
Lors de la compilation, il vous donne le JavaScript suivant.
// Generated by CoffeeScript 1.10.0
(function() {
var i, len, num, numbers;
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log("The elements of the range are: ");
for (i = 0, len = numbers.length; i < len; i++) {
num = numbers[i];
console.log(num);
}
}).call(this);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee comprehensions_over_ranges.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante. Ici, vous pouvez observer que la valeur finale9 est exclu.
The elements of the range are:
0
1
2
3
4
5
6
7
8
De la même manière, nous pouvons également modifier cet incrément en utilisant le mot-clé by de compréhensions.
array = (num for num in [1..10] by 2)
console.log array