我是一个初学者,正在尝试重写下划线函数_.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"
并编写一个函数来测试该方法是否是一个函数。
在这里您可以使用参数进行调用。
要测试所有项目都有一个方法:
你的意思是这样的吗?