lodash的作用与常见API

lodash的作用与常见API

  • 什么是lodash?
    - Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。
    • lodash的常见API
      • _.reject:根据条件去除某个元素。
              var foo = [
              {id: 0, name: "aaa", age: 33},
              {id: 1, name: "bbb", age: 25}
              ]
              var bar = _.reject(foo, ['id', 0])
              //bar = [{id: 1, name: "bbb", age: 25}]
      
      • _.pick:根据第二个参数的key的数组,筛选第一个参数中的值并返回
      var foo = {id: 0, name: "aaa", age: 33}
      var bar = _.pick(foo, ['name', 'age'])
      //bar = {name: "aaa", age: 33}
      
      • _.keys:返回object中的所有key
      var foo = {id: 0, name: "aaa", age: 33}
      var bar = _.keys(foo)
      //bar = ['id', 'name', 'age']
      
      • _.cloneDeep:深度拷贝,这个不用多说了吧,js中基础类型以外的类型,都会默认拷贝备份
      var foo = {id: 0, name: "aaa", age: 33}
      var bar = _.cloneDeep(foo)
      
      • _.find:查找数组(注意一下如果没找到的话,会返回undefined,要处理一下)
      var foo = [
      {id: 0, name: "aaa", age: 33},
      {id: 1, name: "bbb", age: 25}
      ] 
      var bar = _.find(foo, ['id', 0])
      //bar = {id: 0, name: "aaa", age: 33}
      
      • _.keyBy:以某个属性为键,将数组转为对象
      var foo = var foo = [
      {id: 0, name: "aaa", age: 33},
      {id: 1, name: "bbb", age: 25}
      ]
      var bar = _.keyBy(foo, 'name')
      //bar = {
      //    aaa: {id: 0, name: "aaa", age: 33},
      //    bbb: {id: 1, name: "bbb", age: 25}
      //}
      
      • _.filter:根据条件过滤出符合条件的元素,返回新数组
      var foo = var foo = [
      {id: 0, name: "aaa", age: 33},
      {id: 1, name: "bbb", age: 25}
      ]
      var bar = _.filter(foo, ['name', "aaa"])
      //bar = {
      //    aaa: {id: 0, name: "aaa", age: 33}
      //}
      
      • _.map:从集合中挑出一个key,将其值作为数组返回
      var foo = var foo = [
      {id: 0, name: "aaa", age: 33},
      {id: 1, name: "bbb", age: 25}
      ]
      var bar = _.map(foo, 'name')
      //bar = ["aaa", "bbb"]
      
      • .max/.min/_.sum:数组中最大值、最小值、数组求和
      var foo = [1, 2, 3, 4]
      var bar = _.max(foo)
      //bar = 4
      bar = _.min(foo)
      //bar = 1
      bar = _.sum(foo)
      //bar = 10
      
      • .pad/.padStart/_.padEnd:在两端、开头、末尾补齐字符
      var foo = "helloworld"
      var bar = _.pad(foo, 14, '-')
      //bar = --helloworld--
      bar = _.padStart(foo, 14, '-')
      //bar = ----helloworld
      bar = _.padEnd(foo, 14, '-')
      //bar = helloworld----
      
      • 组合用法
      • 选出json数组中id最大的一项
      var foo = [
      {id: 0, name: "aaa", age: 33},
      {id: 1, name: "bbb", age: 25}
      ]
      var bar = _.find(foo, ['id', _.max(_.map(foo, 'id'))])
      // bar = {id: 1, name: "bbb", age: 25}
      // ps:也可以用maxBy某个key来代替
      
      • 更新json数组中某一项的值
      var foo = [
      {id: 0, name: "aaa", age: 33},
      {id: 1, name: "bbb", age: 25}
      ]
      let list = _.keyBy(foo, 'id')
      list[0].name = "ccc"
      var bar = _.map(list)
      // bar = [
      //    {id: 0, name: "ccc", age: 33},
      //    {id: 1, name: "bbb", age: 25}
      //]
      
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在编程中,compose是一个常用的函数组合工具,它可以将多个函数按照一定的顺序组合起来形成一个新的函数。在调用compose时,我们可以将多个函数作为参数传入,compose会按照从右到左的顺序依次执行这些函数,并将每个函数的返回值作为下一个函数的输入。 在调用compose时,可以使用不同的编程语言和库来实现。以下是一些常见的编程语言和库中compose的调用方式: 1. JavaScript中的compose调用: 在JavaScript中,可以使用lodash或ramda等库来实现compose函数。例如,使用lodash库的compose函数可以这样调用: ```javascript const composedFunc = _.compose(func1, func2, func3); const result = composedFunc(input); ``` 2. Python中的compose调用: 在Python中,可以使用函数式编程库functools中的compose函数来实现函数组合。例如: ```python from functools import compose composed_func = compose(func1, func2, func3) result = composed_func(input) ``` 3. Java中的compose调用: 在Java中,可以使用Function接口中的compose方法来实现函数组合。例如: ```java Function<Integer, Integer> composedFunc = func1.compose(func2).compose(func3); Integer result = composedFunc.apply(input); ``` 4. C++中的compose调用: 在C++中,可以使用函数对象或者函数指针来实现函数组合。例如: ```cpp auto composedFunc = std::bind(func1, std::bind(func2, std::bind(func3, std::placeholders::_1))); auto result = composedFunc(input); ``` 以上是一些常见编程语言中compose的调用方式,具体的调用方式可能会因编程语言和库的不同而有所差异。如果你有具体的编程语言或库的需求,请告诉我,我可以给出更加详细的示例和解释。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

teng28

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值