Arrays Node.js-从数组中删除特定函数
给定一个命名函数数组,如何删除除指定函数以外的所有函数?导出函数,例如exports.foo。要模拟示例,请执行以下操作:Arrays Node.js-从数组中删除特定函数,arrays,node.js,function,module,anonymous-function,Arrays,Node.js,Function,Module,Anonymous Function,给定一个命名函数数组,如何删除除指定函数以外的所有函数?导出函数,例如exports.foo。要模拟示例,请执行以下操作: var test = []; test.push(foo = function(){}); test.push(bar = function(){}); console.log(test); 日志: 如何删除除指定功能(如bar)以外的所有功能 编辑:一些额外的上下文-我有一组插件函数,可以自动加载到数组中。作为我的摩卡测试的一部分,我希望单独测试每一个,因此希望除去指定
var test = [];
test.push(foo = function(){});
test.push(bar = function(){});
console.log(test);
日志:
如何删除除指定功能(如bar)以外的所有功能
编辑:一些额外的上下文-我有一组插件函数,可以自动加载到数组中。作为我的摩卡测试的一部分,我希望单独测试每一个,因此希望除去指定的功能以外的所有功能。我想问你为什么要这样做,但如果你打算这样做,我会这样做:
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;
}
如果你想单独测试每一个,我建议你复制你想要的fn并测试它。类似于'fnToTest=array.someFn'好的,明白了。我认为更好的是,我需要扩展我的主加载器类,使其更加面向测试,例如,我可以指定要加载的插件,或者全部加载。谢谢你的反馈-非常有用:是的,我认为这很有意义。
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);