CoffeeScript - Comprensioni
Nel capitolo precedente, abbiamo imparato vari cicli forniti da CoffeeScript, whilee le sue varianti. Oltre a questi, CoffeeScript fornisce strutture di loop aggiuntive note comecomprehensions.
Queste comprensioni sostituiscono forloop in altri linguaggi di programmazione, se aggiungiamo esplicitamente le clausole guard opzionali e il valore dell'indice dell'array corrente. Usando le comprensioni, possiamo iterare sia gli array che gli oggetti e le comprensioni che iterano gli array sono espressioni e possiamo restituirli in una funzione o assegnarli a una variabile.
S.No. | Dichiarazione e descrizione |
---|---|
1 | per ... nelle comprensioni Il for..in la comprensione è la forma base di comprensione in CoffeeScript, usando questo possiamo iterare gli elementi di una lista o di un array. |
2 | per .. di comprensioni Proprio come gli array, CoffeeScriptScript fornisce un contenitore per archiviare coppie chiave-valore note come oggetti. Possiamo iterare oggetti usando ilfor..of comprensioni fornite da CoffeeScript. |
3 | list comprehensions Il list le comprensione in CoffeeScript vengono utilizzate per mappare un array di oggetti su un altro array. |
Indice di comprensione
La lista / matrice di elementi ha un indice che può essere utilizzato nelle comprensioni. Puoi usarlo nelle comprensioni usando una variabile come mostrato di seguito.
for student,i in [element1, element2, element3]
Esempio
L'esempio seguente mostra l'utilizzo dell'indice di for…incomprensione in CoffeeScript. Salva questo codice in un file con nomefor_in_index.coffee
for student,i in ['Ram', 'Mohammed', 'John']
console.log "The name of the student with id "+i+" is: "+student
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c for_in_index.coffee
Durante la compilazione, ti dà il seguente JavaScript.
// 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);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee for_in_index.coffee
All'esecuzione, il file CoffeeScript produce il seguente output.
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
Forma di comprensione con suffisso
Proprio come postfix if e unless, CoffeeScript fornisce la forma postfissa delle Comprehensions che è utile durante la scrittura del codice. Usando questo, possiamo scrivere il filefor..in comprensione in una singola riga come mostrato di seguito.
#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}
mostra un esempio
Assegnazione a una variabile
La comprensione che usiamo per iterare gli array può essere assegnata a una variabile e restituita anche da una funzione.
Esempio
Considera l'esempio fornito di seguito. Qui puoi osservare che abbiamo recuperato gli elementi di un array usandofor..in comprensione e assegnata a una variabile denominata names. E abbiamo anche una funzione che restituisce una comprensione utilizzando esplicitamente ilreturnparola chiave. Salva questo codice in un file con nomeexample.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()
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c example.coffee
Durante la compilazione, ti dà il seguente JavaScript.
// 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);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee example.coffee
All'esecuzione, il file CoffeeScript produce il seguente output.
The contents of the variable names are ::Ram,Mohammed,John
The value returned by the function is Ram
La parola chiave
CoffeeScript fornisce intervalli per definire un elenco di elementi. Ad esempio, l'intervallo [1..10] è equivalente a [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] dove ogni elemento viene incrementato di 1. Possiamo anche modificare questo incremento usando ilby parola chiave di comprensione.
Esempio
L'esempio seguente mostra l'utilizzo di by parola chiave del for..incomprensione fornita da CoffeeScript. Salva questo codice in un file con nomeby_keyword_example.coffee
array = (num for num in [1..10] by 2)
console.log array
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c by_keyword_example.coffee
Durante la compilazione, ti dà il seguente JavaScript.
// 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);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee by_keyword_example.coffee
All'esecuzione, il file CoffeeScript produce il seguente output.
[ 1, 3, 5, 7, 9 ]