看看下面的代码结构:
myFunction(
_(myArray)
.filter({ keep: true })
.uniq('id')
.value()
);
myFunction()
将使用 lodash 的某些数组转换的结果作为其参数。虽然我喜欢代码的风格,但我发现很难调试并最终重构它以在另一个函数中包含 lodash 代码或先将其分配给一个变量,然后将变量传递给 myFunction()
。您知道一种无需重构即可调试函数参数代码的有效方法吗?一些想法:
console.log
的正确位置。 .filter()
和 .uniq()
最佳答案
最好的方法是插入步骤:
.tap(console.log)
其他方法:
创建混合函数
var debug = function (val) {
console.log(val);
return val;
}
_.mixin({'debug': debug})
并像使用它一样
_(myArray)
.debug()
.filter({ keep: true })
.debug()
.uniq('id')
.debug()
.value()
或者您可以在使用之前覆盖 lodash 函数
_.filter = _.wrap(_.filter, function(func, val) {
console.log(func(val));
return func(val);
});
关于javascript - 如何有效地调试方法链函数参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40608241/