如何使用lodash作为以下代码的帮助程序

时间:2016-09-25 15:00:49

标签: javascript arrays node.js lodash immutable.js

我使用以下代码正在运行,我想知道是否有办法使用lodash或其他lib简化它? 我正在获得带有值的数组并逐行添加它,这只是开始:)所以我想知道JS中是否有更好的方法

_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;
},

1 个答案:

答案 0 :(得分:0)

我没有对此进行过测试,但有些内容应该可行。你不需要lodash这种方法。基本上你正在做的是迭代一个数组并将其两个属性传递给url.addSearch。因此,我们可以编写一个接受数组和两个字段的函数:

_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');
}