Lodash是一个JavaScript库,它使用函数式编程范例为常见的编程任务提供实用程序功能。下面提供了几个函数的使用示例。

数据示例

新建一个obj对象进行测试。

    var obj = [{
            "name": "Michael",
            "age": "25",
            "gender": "man",
            "hobby": [
                "Basketball", "Running"
            ]
        },
        {
            "name": "Jack",
            "age": "23",
            "gender": "man",
            "hobby": [
                "Basketball", "Singing"
            ]
        },
        {
            "name": "Lucy",
            "age": "27",
            "gender": "woman",
            "hobby": [
                "Dancing", "Running"
            ]
        }
    ];

    var obj2 = [{
        "name": "Sky",
        "age": "27",
        "gender": "woman",
        "hobby": [
            "Dancing", "Running"
        ]
    }];

用法示例

1._.filter

使用说明:对数组进行过滤,只返回符合条件的元素。

例,过滤genderman的元素。

var boys = _.filter(obj, ['gender', 'man']); 

结果:

[
  {
    "name": "Michael",
    "age": "25",
    "gender": "man",
    "hobby": [
      "Basketball",
      "Running"
    ]
  },
  {
    "name": "Jack",
    "age": "23",
    "gender": "man",
    "hobby": [
      "Basketball",
      "Singing"
    ]
  }
]

2._.some

使用说明:检查集合中是否有符合指定条件的元素,有则返回true。

例,是否存在名为Lucy的女性。

var checkSome = _.some(obj, { "name": "Lucy", "gender": "woman" });

结果:

true

3._.map

使用说明:根据参数对集合进行处理并返回新数组。

例,获取name属性组成的数组或者namegender组成的数组。

var names = _.map(obj, 'name');

var result = _.map(obj, function(e){
       return {"name":e.name,"gender":e.gender}
    });

结果:

["Michael","Jack","Lucy"]

[{"name":"Michael","gender":"man"},{"name":"Jack","gender":"man"},{"name":"Lucy","gender":"woman"}]

4._.union

使用说明:合并多个JS数组。

例,合并obj、obj2两个数组。

var resultArray = _.union(obj, obj2);
console.log(JSON.stringify(resultArray));

结果:

[
  {
    "name": "Michael",
    "age": "25",
    "gender": "man",
    "hobby": [
      "Basketball",
      "Running"
    ]
  },
  {
    "name": "Jack",
    "age": "23",
    "gender": "man",
    "hobby": [
      "Basketball",
      "Singing"
    ]
  },
  {
    "name": "Lucy",
    "age": "27",
    "gender": "woman",
    "hobby": [
      "Dancing",
      "Running"
    ]
  },
  {
    "name": "Sky",
    "age": "27",
    "gender": "woman",
    "hobby": [
      "Dancing",
      "Running"
    ]
  }
]

参考:

  1. Lodash Documents v4.17.15