j'apprends JS et je besoin d'aide à la tâche suivante:Comment créer une "fonction qui retourne une fonction et divise le fichier csv"?
Je dois créer un function compile_csv_search(text, key_name)
qui parse texte dans format CSV. (Non requis pour gérer guillemets et les échappements des valeurs, prennent des valeurs de champ ne contiennent jamais des virgules ou autres caractères spéciaux.)
doit retourner une fonction qui recherche un enregistrement d'une valeur du champ spécifié comme le second argument de compile_csv_search. Supposons que toutes les valeurs dans le champ clé sont uniques.
Exemple d'utilisation:
var csv_by_name = compile_csv_search(
"ip,name,desc\n"+
"1.94.0.2,server1,Main Server\n"+
"1.53.8.1,server2,Backup Server\n",
"name");
console.log(csv_by_name("server2"));
console.log(csv_by_name("server9"));
...will print:
{ip: "10.52.5.1", name: "server2", desc: "Backup Server"}
non définie
** Je ne comprenais pas ce que cela signifie "fonction qui renvoie la fonction". Comment la fonction peut-elle retourner une autre fonction?
Merci!
P.S. attachaient ma solution pour votre avis
function compile_csv_search(csvServerData){
var header = csvServerData.split('\n')[0].split(",");
var spleatedServerData = csvServerData.split('\n');
return function(serverName)
{
for(var i = 1; i < spleatedServerData.length; i++){
var singleServer = spleatedServerData[i].split(',')
var result = {};
var exist = false;
for (var j = 0; j < header.length; j++) {
if(singleServer.indexOf(serverName) == -1)
break;
exist = true;
result[header[j]] = singleServer[j];
}
if(exist){
return(result);
break;
}
}
}
}
var csv_by_name = compile_csv_search(
"ip,name,desc\n"+
"10.49.1.4,server1,Main Server\n"+
"10.52.5.1,server2,Backup Server\n");
Lire: http://stackoverflow.com/questions/111102/how-do-javascript-closures-work – user2864740
Voici un exemple de fonction qui retourne une fonction: 'function foo (name) {return function() {console.log (nom); } } foo ('bar')(); '. Les fonctions sont objet, donc elles peuvent être passées et renvoyées par des fonctions. –
Veillez à séparer la tâche générale du problème/problème. L'analyse du CSV n'est qu'une préoccupation secondaire (la tâche) et non liée à la compréhension des fermetures ou à l'énoncé du problème (le problème). – user2864740