2016-09-25 1 views
0

J'utilise le code suivant qui fonctionne et je me demande s'il y a un moyen de le rendre simple en utilisant lodash ou autre lib? Je reçois tableau avec une valeur et ajoutez ligne par ligne, ce qui est juste le début :) donc je me demande s'il y a une meilleure façon JSComment utiliser lodash comme assistant pour le code suivant

_add: function(url, oConfig, CacheParameters, aDest, 
    bParameters, aReus) { 
    for (var i = 0; CacheParameters && i < CacheParameters.length; i++) { 
     url.addSearch(CacheParameters[i].name, CacheParameters[i].value); 
    } 
    for (i = 0; aDest && i < aDest.length; i++) { 
     url.addSearch(aDest[i].name, aDest[i].value); 
    } 
    for (i = 0; bParameters && i < bParameters.length; i++) { 
     url.addSearch(bParameters[i].name, bParameters[i].value); 
    } 
    for (i = 0; aReus && i < aReus.length; i++) { 
     url.addSearch(aReus[i].name, aReus[i].value); 
    } 
    for (i = 0; oConfig.bParameters && i < oConfig.bParameters.length; i++) { 
     var oParam = oConfig.bParameters[i]; 
     url.addSearch(oParam.paramName, oParam.paramValue); 
    } 
    return url; 
}, 

Répondre

1

Je n'ai pas testé, mais quelque chose le long de la les lignes de ceci devraient fonctionner. Vous n'avez pas besoin de lodash pour cette approche. Fondamentalement, ce que vous faites est d'itérer à travers un tableau et passer deux de ses propriétés à url.addSearch. Par conséquent, nous pouvons écrire une fonction qui accepte un tableau et deux champs:

_add: function(url, oConfig, CacheParameters, aDest, bParameters, aReus) { 
    function addSearchToUrl(arr, field1, field2) { 
    arr.forEach(function (item) { 
     url.addSearch(item[field1], item[field2]); 
    }); 
    } 

    addSearchToUrl(CacheParameters, 'name', 'value'); 
    addSearchToUrl(aDest, 'name', 'value'); 
    addSearchToUrl(bParameters, 'name', 'value'); 
    addSearchToUrl(aReus, 'name', 'value'); 
    addSearchToUrl(oConfig.bParameters, 'paramName', 'paramValue'); 
}