项目中用到的 lodash 函数

_.differenceBy

从 A 数组中筛选出 B 数组中不存在的选项,注意是有顺序关系的!

_.difference([2, 1], [2, 3]) // => [1]

_.difference([2, 3], [2, 1]) // => [3]

实际需求:从 allChannels 筛选出 myChannels 不包含的选项

const allChannels = [
    { id: 2, name: '开发者资讯' },
    { id: 3, name: 'ios' },
    { id: 4, name: 'c++' },
    { id: 5, name: 'android' },
    { id: 6, name: 'css' },
    { id: 8, name: '区块链' },
    { id: 9, name: 'go' },
    { id: 10, name: '产品' },
    { id: 11, name: '后端' },
    { id: 12, name: 'linux' },
    { id: 13, name: '人工智能' },
    { id: 14, name: 'php' },
    { id: 15, name: 'javascript' },
    { id: 16, name: '架构' },
    { id: 17, name: '前端' },
    { id: 18, name: 'python' },
    { id: 19, name: 'java' },
    { id: 20, name: '算法' },
    { id: 21, name: '面试' },
    { id: 22, name: '科技动态' },
    { id: 23, name: 'js' },
    { id: 24, name: '设计' },
    { id: 25, name: '数码产品' },
    { id: 1, name: 'html' },
    { id: 7, name: '数据库' },
    { id: 26, name: '软件测试' },
    { id: 27, name: '测试开发' },
    { id: 31, name: 'test4' },
    { id: 32, name: 'test18' },
    { id: 41, name: 'test17' },
];

const myChannels = [{ id: 0, name: '推荐' }, { id: 11, name: '后端' }, { id: 12, name: 'linux' }, { id: 13, name: '人工智能' }, { id: 17, name: '前端' }, { id: 18, name: 'python' }, { id: 7, name: '数据库' }];

普通代码实现

// findIndex 找到第一个符合条件的索引,找不到返回 -1
allChannels.filter(allChannel => myChannels.findIndex(myChannel => myChannel.id === allChannel.id) === -1);
allChannels.filter(allChannel => !myChannels.some(myChannel => myChannel.id === allChannel.id));

利用 lodash

const _ = require('lodash');
_.differenceBy(allChannels, myChannels, 'id');

_.xor

_.xor 可以求两个数组的差集,注意和 _.differenceBy 进行区分

const _ = require('lodash');
_.xor([2, 1], [2, 3]); // => [1, 3]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在UniApp使用Lodash库可以方便地进行数据处理和操作。Lodash是一个JavaScript实用工具库,提供了很多常用的函数方法,可以简化开发过程并提高代码的可读性和可维护性。 要在UniApp使用Lodash,首先需要安装Lodash库。可以通过npm安装,打开终端并执行以下命令: ``` npm install lodash ``` 安装完成后,在需要使用Lodash的页面或组件引入Lodash库: ```javascript import _ from 'lodash'; ``` 接下来就可以使用Lodash提供的各种函数方法了。以下是一些常用的Lodash函数方法示例: 1. 数组操作: ```javascript const arr = [1, 2, 3, 4, 5]; // 使用Lodash的map函数对数组进行映射操作 const mappedArr = _.map(arr, (num) => num * 2); console.log(mappedArr); // [2, 4, 6, 8, 10] // 使用Lodash的filter函数对数组进行过滤操作 const filteredArr = _.filter(arr, (num) => num % 2 === 0); console.log(filteredArr); // [2, 4] ``` 2. 对象操作: ```javascript const obj = { name: 'Alice', age: 20, gender: 'female' }; // 使用Lodash的pick函数选择对象的指定属性 const pickedObj = _.pick(obj, ['name', 'age']); console.log(pickedObj); // { name: 'Alice', age: 20 } // 使用Lodash的omit函数忽略对象的指定属性 const omittedObj = _.omit(obj, ['gender']); console.log(omittedObj); // { name: 'Alice', age: 20 } ``` 3. 字符串操作: ```javascript const str = 'Hello, World!'; // 使用Lodash的toUpper函数将字符串转为大写 const upperStr = _.toUpper(str); console.log(upperStr); // 'HELLO, WORLD!' // 使用Lodash的truncate函数截断字符串 const truncatedStr = _.truncate(str, { length: 10 }); console.log(truncatedStr); // 'Hello, Wor...' ``` 这些只是Lodash提供的众多函数方法的一部分,你可以根据具体需求查阅Lodash官方文档来了解更多用法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

当铺鬼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值