CoffeeScript - Compréhensions
Dans le chapitre précédent, nous avons appris différentes boucles fournies par CoffeeScript, whileet ses variantes. En plus de ceux-ci, CoffeeScript fournit des structures de boucle supplémentaires appeléescomprehensions.
Ces compréhensions remplacent le forboucle dans d'autres langages de programmation, si nous ajoutons explicitement les clauses de garde optionnelles et la valeur de l'index du tableau actuel. En utilisant des compréhensions, nous pouvons itérer des tableaux ainsi que des objets et les compréhensions qui itèrent des tableaux sont des expressions, et nous pouvons les renvoyer dans une fonction ou les affecter à une variable.
S.No. | Déclaration et description |
---|---|
1 | pour..en compréhensions
le for..in la compréhension est la forme de base de la compréhension dans CoffeeScript en utilisant ceci, nous pouvons itérer les éléments d'une liste ou d'un tableau. |
2 | pour..des compréhensions
Tout comme les tableaux, CoffeeScriptScript fournit des conteneurs pour stocker des paires clé-valeur appelées objets. Nous pouvons itérer des objets en utilisant lefor..of compréhensions fournies par CoffeeScript. |
3 | list comprehensions
le list Les compréhensions dans CoffeeScript sont utilisées pour mapper un tableau d'objets à un autre tableau. |
Index des compréhensions
La liste / tableau d'éléments a un index qui peut être utilisé dans les compréhensions. Vous pouvez l'utiliser dans les compréhensions en utilisant une variable comme indiqué ci-dessous.
for student,i in [element1, element2, element3]
Exemple
L'exemple suivant illustre l'utilisation de l'index du for…incompréhension dans CoffeeScript. Enregistrez ce code dans un fichier avec un nomfor_in_index.coffee
for student,i in ['Ram', 'Mohammed', 'John']
console.log "The name of the student with id "+i+" is: "+student
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c for_in_index.coffee
Lors de la compilation, il vous donne le JavaScript suivant.
// Generated by CoffeeScript 1.10.0
(function() {
var i, j, len, ref, student;
ref = ['Ram', 'Mohammed', 'John'];
for (i = j = 0, len = ref.length; j < len; i = ++j) {
student = ref[i];
console.log("The name of the student with id " + i + " is: " + student);
}
}).call(this);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee for_in_index.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante.
The name of the student with id 0 is: Ram
The name of the student with id 1 is: Mohammed
The name of the student with id 2 is: John
Forme de compréhension Postfix
Tout comme postfix if et unless, CoffeeScript fournit la forme postfix des Comprehensions qui est pratique lors de l'écriture du code. En utilisant cela, nous pouvons écrire lefor..in compréhension en une seule ligne comme indiqué ci-dessous.
#Postfix for..in comprehension
console.log student for student in ['Ram', 'Mohammed', 'John']
#postfix for..of comprehension
console.log key+"::"+value for key,value of { name: "Mohammed", age: 24, phone: 9848022338}
montrer l'exemple
Assigner à une variable
La compréhension que nous utilisons pour itérer des tableaux peut être affectée à une variable et également renvoyée par une fonction.
Exemple
Prenons l'exemple ci-dessous. Ici vous pouvez observer que nous avons récupéré les éléments d'un tableau en utilisantfor..in compréhension et assigné ceci à une variable nommée names. Et nous avons également une fonction qui renvoie une compréhension en utilisant explicitement lereturnmot-clé. Enregistrez ce code dans un fichier avec un nomexample.coffee
my_function =->
student = ['Ram', 'Mohammed', 'John']
#Assigning comprehension to a variable
names = (x for x in student )
console.log "The contents of the variable names are ::"+names
#Returning the comprehension
return x for x in student
console.log "The value returned by the function is "+my_function()
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c example.coffee
Lors de la compilation, il vous donne le JavaScript suivant.
// Generated by CoffeeScript 1.10.0
(function() {
var my_function;
my_function = function() {
var i, len, names, student, x;
student = ['Ram', 'Mohammed', 'John'];
names = (function() {
var i, len, results;
results = [];
for (i = 0, len = student.length; i < len; i++) {
x = student[i];
results.push(x);
}
return results;
})();
console.log("The contents of the variable names are ::" + names);
for (i = 0, len = student.length; i < len; i++) {
x = student[i];
return x;
}
};
console.log("The value returned by the function is " + my_function());
}).call(this);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee example.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante.
The contents of the variable names are ::Ram,Mohammed,John
The value returned by the function is Ram
Le par mot-clé
CoffeeScript fournit des plages pour définir une liste d'éléments. Par exemple, la plage [1..10] équivaut à [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] où, chaque élément est incrémenté de 1. Nous pouvons également modifier cet incrément en utilisant leby mot-clé des compréhensions.
Exemple
L'exemple suivant montre l'utilisation du by mot-clé du for..incompréhension fournie par CoffeeScript. Enregistrez ce code dans un fichier avec un nomby_keyword_example.coffee
array = (num for num in [1..10] by 2)
console.log array
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c by_keyword_example.coffee
Lors de la compilation, il vous donne le JavaScript suivant.
// Generated by CoffeeScript 1.10.0
(function() {
var array, num;
array = (function() {
var i, results;
results = [];
for (num = i = 1; i <= 10; num = i += 2) {
results.push(num);
}
return results;
})();
console.log(array);
}).call(this);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee by_keyword_example.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante.
[ 1, 3, 5, 7, 9 ]