Node.js - 从数组中删除特定函数

时间:2014-08-12 03:31:03

标签: arrays node.js function module anonymous-function

给定一系列命名函数,如何删除除指定函数之外的所有函数?功能导出,例如exports.foo。模拟一个例子:

var test = [];
test.push(foo = function(){});
test.push(bar = function(){});
console.log(test);

日志:

[ [Function], [Function] ]

如何删除除指定功能之外的所有功能,例如酒吧?


编辑:一些额外的上下文 - 我有一组插件(函数)自动加载到一个数组中。作为我的Mocha测试的一部分,我希望单独测试每一个,因此想要删除除指定函数之外的所有函数。

1 个答案:

答案 0 :(得分:0)

我将质疑您为什么要这样做,但如果您已经开始这样做,我就是这样做的:

function deleteAllButThis(fn, arr){


  for(var i=0; i < arr.length; i++) {
     //if fn in array does NOT match fn passed in, 
     if (fn !== arr[i]) {
       arr.splice(i, 1); //remove current array item
     }
  }

  return arr;

}

然后你就这样称呼它:

deleteAllButThis(foo, test);