使用 underscorejs 在 _.invoke() 中可用的不同方法是什么
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"]
每个字符串都有一堆来自字符串原型的方法。这意味着可以在 _.invoke
:
中使用 say 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 等
我的代码:
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"]
每个字符串都有一堆来自字符串原型的方法。这意味着可以在 _.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 等