我是一个初学者,试图重写下划线函数_.invoke
。我试图使函数返回一个数组,其中包含对集合中的每个值调用该方法的结果。
_.invoke = function(collection, methodName) {
var result = [];
if (Array.isArray(collection)) {
for (let i = 0; i < collection.length; i++) {
methodName.call(collection[i])
var value = collection[i][methodName]
result.push(value)
}
}
return result
}
我觉得我的问题出在这一行:methodName.call(collection[i])
-想调用对象collection[i]
上的方法,但我想传递一些参数,它们应该包含在单元测试中。
到目前为止,我一直在使用这个测试:typeof(methodName) === "function"
并编写一个函数来测试该方法是否是函数。
2条答案
按热度按时间ffdz8vbo1#
在这里,您可以使用参数进行调用。
要测试所有项是否都有方法,请执行以下操作:
6fe3ivhb2#
你是说像这样的东西吗