小知识,大挑战!本文正在参与“ 程序员必备小知识 ”创作活动
文档链接 如果有 Underscore 修改成lodash的方法 一些方法变动的方法, 已用到的函数开始记录
chain
进行复杂的多步操作时使用chain。 简单举例:
var users = [
{ "name": "小张", "color": "blue", "age": "22" },
{ "name": "小王", "color": "blue", "age": "11" },
{ "name": "小李", "color": "green", "age": "18" }];
var result = _ .chain(users)
.sortBy('age')
.value();
输出:
{user: '小王', age: 1, "color": "blue"}
{user: '小李', age: 36, "color": "green"}
{user: '小张', age: 40, "color": "blue"}
groupBy
故名思义,通过什么进行分组的意思 简单举例:
var data = [{ "name": "小张", "color": "blue", "age": "22" }, { "name": "小王", "color": "blue", "age": "11" },{ "name": "小李", "color": "green", "age": "18" }];
var result = _.chain(users)
.groupBy('color')
.map((value, key) => ({ color: key, users: value }))
.value()
输出:
{color: 'blue', users: Array(2)}
{color: 'green', users: Array(1)}
keyBy
通过便利集合,返回以key作为参数的集合 简单举例:
var data = [{ "name": "小张", "color": "blue", "age": "22" }, { "name": "小王", "color": "blue", "age": "11" },{ "name": "小李", "color": "green", "age": "18" }];
var result = _.chain(users)
.groupBy('color')
.map((value, key) => ({ color: key, users: value }))
.keyBy('color')
.value()
输出:
blue:{color: 'blue', users: Array(2)}
green:{color: 'green', users: Array(1)}
举一反三:其中涉及到的countBy
, orderBy
, sortBy
也就很好理解了, 具体使用可以查看文章开头的链接查看
reduce
遍历集合中的每个元素。 每次返回的值会作为下一次 iteratee 使用 简单举例:
_.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { (result[value] || (result[value] = [])).push(key); return result;}, {});
输出:
{ '1': ['a', 'c'], '2': ['b'] } (无法保证遍历的顺序)
some
检查collection
(集合)中的元素是否存在 任意 truthy(真值)的元素,一旦执行到不符合的条件 返回 truthy(真值),遍历就停止
var users = [ { 'user': 'barney', 'active': true }, { 'user': 'fred', 'active': false }];
_.some(users, { 'user': 'barney', 'active': false });
输出:
false
以上就是全部内容
forEach
invokeMap
flatMap
find
size
等等就不一一说。使用的时候再往里面补充,持续输出中。。。