invoke()中使用undercorejs的不同方法是什么
what is the different methods available in _.invoke() using underscorejs
我的代码:
var arr = [[5,4,3],[3,7,88],[99,66,48]];
//Sort
var testInvoke = _.invoke(arr, 'sort');
- 在
_.invoke
函数中,函数名称为sort
因此,所有按排序顺序排列的
testInvoker
数据都是[[3,4,5],[3,7,88],[48,66,99]]
- 我的问题是
_.invoke
,通过它我可以像sort
一样执行其他操作 - 除了
sort
,我只找到slice
- 如果有人知道操作列表或任何其他参考资料,请帮助我
要回答您的问题,我们首先来看看_.invoke
在内部做了什么:
function (obj, method) {
var args = slice.call(arguments, 2);
var isFunc = _.isFunction(method);
return _.map(obj, function(value) {
return (isFunc ? method : value[method]).apply(value, args);
});
}
从这里可以明显看出,method
应该是列表项可能具有的任何方法。例如,如果obj
是一个数组,那么method
可以是该数组项具有的任何方法。取字符串数组:
["one", "two", "three"]
每个字符串都有一堆来自string原型的方法。这意味着可以在_.invoke
:中使用String.prototype.toUpperCase
方法
_.invoke(["one", "two", "three"], "toUpperCase");
它将产生新的阵列:
["ONE", "TWO", "THREE"]
因此,您的问题的答案是:method
可以是被迭代对象的项支持的任何方法。这可以是原型方法,也可以是对象自身的属性:
function User(name) {
this.name = name;
this.getName = function() {return this.name};
}
var user1 = new User('Thomas');
var user2 = new User('Mann');
_.invoke([user1, user2], 'getName'); // => ["Thomas", "Mann"]
如果您的问题数组[[5,4,3],[3,7,88],[99,66,48]]
除了sort
之外,您还可以使用任何其他Array.prototype
方法,如join
、concat、reduce等。
相关文章:
- 打破承诺链的好方法是什么
- 在JavaScript中拆分日期字符串的更好方法是什么
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- 基于窗口宽度jquery的函数的替代方法是什么
- knex:根据结果创建数组的合适方法是什么
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 使用Modernizr检测移动设备最可靠的方法是什么
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 用javascript修复这个JSON对象字符串最干净的方法是什么
- 让会话值可用于JavaScript的好方法是什么
- 从AngularJs获取谷歌地图对象的正确方法是什么
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么
- 列出没有 mysql 的元素的最佳方法是什么
- 克服错误的更优雅的方法是什么:需要对象说明符.当通过JXA通过Messages发送SMS时,参数没有对象说明符
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 在 Javascript 中实现解耦代码/回调的正确方法是什么?
- 使用Javascript,获取元素的方法是什么,基于打开和关闭标记之间的文本
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 直接在DOM事件处理程序中调用作用域函数的最短方法是什么