Javascript咖喱函数对这段代码有益吗?

Javascript咖喱函数对这段代码有益吗?,javascript,currying,Javascript,Currying,我不熟悉咖喱功能,有人建议我使用它们。我想知道: var updateNodeStorage; updateNodeStorage = function(devicesToCheck) { var nodesToCallOut; nodesToCallOut = devicesToCheck.filter(function(device) { var nodeExistInStorage; return nodeExistInStorage = nodeStorage.

我不熟悉咖喱功能,有人建议我使用它们。我想知道:

var updateNodeStorage;

updateNodeStorage = function(devicesToCheck) {
  var nodesToCallOut;
  nodesToCallOut = devicesToCheck.filter(function(device) {
    var nodeExistInStorage;
    return nodeExistInStorage = nodeStorage.devices.every(function(nodeInStorage) {
      return device.id !== nodeInStorage.id;
    });
  });
  nodesToCallOut.forEach(function(node) {
    getNodeProtocol(node.id);
  });
};

对这段代码使用curry函数有益吗?如果是,我将在何处以及如何使用它

不,我看不出任何地方的代码咖喱会有用

预填充函数的一个或多个参数(有时称为“部分应用”函数)的做法,以便稍后调用curry函数时,将这些参数传递给原始参数。下面是一个例子:

//一个无聊的函数
函数foo(a,b){
log(“a=“+a+”,b=“+b”);
}
//为using函数#bind创建一个值为1的curry
var curriedFoo1=foo.bind(null,1);
//叫它
curriedFoo1(2);//“a=1,b=2”

不,我看不出任何地方的代码套用会有用

预填充函数的一个或多个参数(有时称为“部分应用”函数)的做法,以便稍后调用curry函数时,将这些参数传递给原始参数。下面是一个例子:

//一个无聊的函数
函数foo(a,b){
log(“a=“+a+”,b=“+b”);
}
//为using函数#bind创建一个值为1的curry
var curriedFoo1=foo.bind(null,1);
//叫它
curriedFoo1(2);//“a=1,b=2”


您将在何处/为什么应用它?另外,您在
filter
iterator函数中声明的
nodeExistInStorage
变量的意义是什么?
nodeExistInStorage
是根据用户输入对已查找的设备数组(api调用)进行的设备检查。如果它位于
nodeStorage
数组中,则不要执行冗余的api调用。对,但不要将该变量用于任何用途。您可以完全删除它,只返回
nodeStorage.devices.every
的结果,而不更改代码的功能(任何半正常的JavaScript引擎都会自动执行)。您将在何处/为什么应用它?另外,您在
filter
iterator函数中声明的
nodeExistInStorage
变量的意义是什么?
nodeExistInStorage
是根据用户输入对已查找的设备数组(api调用)进行的设备检查。如果它位于
nodeStorage
数组中,则不要执行冗余的api调用。对,但不要将该变量用于任何用途。您可以完全删除它,只返回
nodeStorage.devices.every的结果,而不改变代码的功能(任何半正常的JavaScript引擎都会自动执行)。