J'utilise beaucoup Python, et je suis en train d'apprendre rapidement JavaScript en ce moment (ou devrais-je dire réapprendre). Je voulais donc demander quel est l'équivalent de *args
et **kwargs
en JavaScript ?
Réponse
Trop de publicités?Pour ceux qui seraient un peu perdus au sujet des variables magiques *args et **kwargs, lire http://book.pythontips.com/en/latest/args_and_kwargs.html
Résumé : *args et **kwargs sont juste des façons conventionnelles d'écrire les variables magiques. Vous pourriez simplement dire * et ** ou *var et **vars. Cela dit, parlons de l'équivalent JavaScript en 2019.
*args en python représente un tableau JavaScript, par exemple ["one", "two", "three"] pour passer cela dans une fonction python, il suffit de définir la fonction comme def function_name(*args) : ce qui signifie que cette fonction accepte les "tableaux" ou les "listes si vous le souhaitez" pour l'appeler, il suffit d'utiliser function function_name(["one", "two", "three"]) :
La même chose en JavaScript peut être faite en utilisant :
function func(x,y,z){
...
}
let args = ["one", "two", "three"];
func(...args)
**or more dynamically as**
function func(inputs<T>:Array){
for(index in inputs){
console.log(inputs[index]);
}
}
let args = ["one", "two", "three"];
func(args)
Jetez un coup d'œil à https://codeburst.io/a-simple-guide-to-destructuring-and-es6-spread-operator-e02212af5831
**kwargs d'autre part représente juste un tableau de paires clé-valeur (objets), c'est tout. Ainsi, **kwargs est par exemple [{"longueur" : 1, "hauteur" : 2}, {"longueur":3, "hauteur" : 4}].
en python, pour définir une fonction acceptant un tableau d'objets, il suffit de dire def function_name(**kwargs) : puis pour l'appeler, on peut faire function_name( [{"length" : 1, "height" : 2}, {"length":3, "height" : 4}]) :
de même en JS
const kwargs = [{"length": 1, "height": 2}, {"length":3, "height": 4}]
function func(obj1, obj2){
...
}
func(...kwargs);
**or more dynamically as:**
const kwargs = [{"length": 1, "height": 2}, {"length":3, "height": 4}]
function func(obj){
for(const [key, value] of Object.entries(obj)){
console.log(key, ": ", value)
}
func(kwargs);
- Réponses précédentes
- Plus de réponses