lodashjs中的常用方法

官方地址:https://www.lodashjs.com/

优点

  • 参数可以为空
  • 功能更加强大
  • 兼容性更好

_.map

_.map([1, 2, 3], o => o * 2); // [2,4,6]
const list = [ { name: '孙悟空', age: 3000 }, { name: '猪八戒', age: 5000 } ];
// 提取字段
_.map(list, 'name'); // [ '孙悟空', '猪八戒' ]
// 等价于
_.map(list, o => o.name); // [ '孙悟空', '猪八戒' ]
// 第二个参数为key
_.map(list, (o, k) => ({ ...o, age: o.age + k })); // [ { name: '孙悟空', age: 3000 }, { name: '猪八戒', age: 5001 } ]
// 可以使用对象
const obj = { name: '孙悟空', age: 3000, position: '斗争圣佛' };
_.map(obj, (o, k)=>({ [k]: o })); // { 孙悟空: 'name', 3000: 'age', 斗争圣佛: 'position' }

_.each / _.forEach

_.each([1, 2, 3], (o, k)=>console.log(o, k));
 // 1 0
 // 2 1
 // 3 2

_.get / _.set

const obj = {};
_.set(obj, 'a.0.c.d', 10); // { a: [ { c: { d: 10 } } ] }
_.get(obj, 'a.0'); // { c: { d: 10 } }

_.cloneDeep (深拷贝) / … (浅拷贝)

// ======================= 直接赋值 =============================
let obj = { a: 1, b: { c: 1 } };
let obj1 = obj; // 直接赋值,指向同一个对象
obj1.a = 2;
console.log(obj1); // { a: 2, b: { c: 1 } };
console.log(obj); // { a: 2, b: { c: 1 } };
// ======================== 浅拷贝 ============================
obj = { a: 1, b: { c: 1 } }; // 还原
obj1 = { ...obj }; // 这是浅拷贝,只改变了一层的地址,深层次的还是指向同一个对象
obj1.a = 2;
console.log(obj1); // { a: 2, b: { c: 1 } };
console.log(obj); // { a: 1, b: { c: 1 } };
obj1.b.c = 3;
console.log(obj1); // { a: 2, b: { c: 3 } };
console.log(obj); // { a: 1, b: { c: 3 } };
// ======================== 深拷贝 ============================
obj = { a: 1, b: { c: 1 } }; // 还原
obj1 = _.cloneDeep(obj); // 这是深拷贝,任何一层都是独立的一份
obj1.a = 2;
console.log(obj1); // { a: 2, b: { c: 1 } };
console.log(obj); // { a: 1, b: { c: 1 } };
obj1.b.c = 3;
console.log(obj1); // { a: 2, b: { c: 3 } };
console.log(obj); // { a: 1, b: { c: 1 } };

_.keys / _.values

const obj = { a: 1, b: 2 };
_.keys(obj); // ['a', 'b']
_.values(obj); // [1, 2]

_.mapValues / _.mapKeys

const obj = { a: 1, b: 2 };
_.mapValues(obj, (v, k) => v * 2); // { a: 2, b: 4 }
// _.mapKeys 只是会替换key值,但是参数还是第一个是value,第二个是key
_.mapKeys(obj, (v, k) => v * 2); // { 2: 1, 4: 2 }
_.mapKeys(obj, (v, k) => k + 1); // { a1: 1, b1: 2 }

_.pick / _.omit / _.pickBy / _.omitBy

const obj = { a: 1, b: 2, c: 3, d: 4 };
_.pick(obj, 'a', 'c'); // { a: 1, c: 3 }
_.pick(obj, ['a', 'c']); // { a: 1, c: 3 }
_.omit(obj, 'a', 'c'); // { b: 2, d: 4 }
_.pickBy(obj, v => v > 2); // { c: 3, d: 4 }

_.includes

_.includes([1, 2, 3], 3); // true

_.every / _.some

const list = [ { name: '孙悟空', age: 3000 }, { name: '猪八戒', age: 5000 } ];
_.every(list, o => o.age > 4000); // false (必须每一个成立才返回真)
_.some(list, o => o.age > 4000); // true (只要有一个成立才返回真)

_.filter / _.reject

const list = [ { name: '孙悟空', age: 3000 }, { name: '猪八戒', age: 5000 } ];
_.filter(list, o => o.age > 4000); //  [ { name: '猪八戒', age: 5000 } ]
_.reject(list, o => o.age > 4000); //  [ { name: '孙悟空', age: 3000 } ]

_.find / _.fileLast

const list = [ { name: '孙悟空', age: 3000 }, { name: '猪八戒', age: 5000 } ];
_.find(list, o => o.age > 1000); //  { name: '孙悟空', age: 3000 }
_.fileLast(list, o => o.age > 1000); //  { name: '猪八戒', age: 5000 }

_.orderBy

const list = [ { name: '孙悟空', age: 3000 }, { name: '猪八戒', age: 5000 } ];
_.orderBy(list, 'age', 'asc'); //  [ { name: '孙悟空', age: 3000 }, { name: '猪八戒', age: 5000 } ]
_.orderBy(list, ['age', 'name'], ['desc', 'asc']); //  [ { name: '猪八戒', age: 5000 }, { name: '孙悟空', age: 3000 } ]

_.uniq / _.uniqBy

_.uniq([2, 1, 2]); // [2, 1]
_.uniqBy(list, o => Math.floor(o.age / 10000)); //  [ { name: '孙悟空', age: 3000 } ]

_.difference / _.differenceBy / _.without / _.intersection / _.intersectionBy / _.union / _.unionBy

_.difference([3, 2, 1], [4, 2]); // [3, 1]
_.without([3, 2, 1], 4, 2); // [3, 1]
_.without([3, 2, 1], ...[4, 2]); // [3, 1]
_.differenceBy([{ x: 2 }, { x: 1 }], [{ x: 1 }], 'x'); // [{ x: 2 }]
_.intersection([2, 1], [4, 2], [1, 2]);  // [2]
_.intersectionBy([{ x: 2 }, { x: 1 }], [{ x: 1 }], o => o.x); // [{ x: 1 }]
_.union([2], [1, 2]); // [ 2, 1 ]
_.unionBy([{ x: 2 }, { x: 1 }], [{ x: 1 }], 'x'); // [{ x: 2 }, { x: 1 }]

_.groupBy

const list = [ { name: '孙悟空', age: 3000 }, { name: '猪八戒', age: 5000 } ];
_.groupBy(list, o => Math.floor(o.age/1000)); // true
// {
//   '3': [ { name: '孙悟空', age: 3000 } ],
//   '5': [ { name: '猪八戒', age: 5000 } ]
// }

_.size

_.size([1, 2, 3]); // 3
_.size({ a: 1, b: 1 }); // 2

_.random

_.random(0, 100) // 包含0和100的随机整数
_.random(0, 100, true) // 包含0和100的随机浮点数

_.range

_.range(1, 5) // [ 1, 2, 3, 4 ]  (注意不包含5)
_.range(1, 5, 2) // [ 1, 3 ]   (2是步长)

_.startsWith (字符串)

_.startsWith('abcd', 'a') // true
_.startsWith('abcd', 'b') // false

_.isArray / _.isPlainObject / _.isNumber / _.isString / _.isInteger / _.isDate

_.isArray([1, 2, 3]); // true
_.isPlainObject({ a: 1 }); // true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: lodash.js是一个流行的JavaScript工具库,提供了许多实用的函数和方法,用于简化JavaScript编程的复杂性。如果你想要下载lodash.js,你可以采取以下几种方式: 1. 官方网站:你可以直接访问lodash.js的官方网站(https://lodash.com/)下载最新版本的lodash.js。在官方网站上,你可以找到针对不同需求的不同构建版本,包括完整版、核心版和按需版本。你只需点击相应的下载链接,即可将lodash.js下载到本地。 2. npm包管理工具:作为一个流行的npm包,你可以使用npm命令来下载lodash.js。首先,在你的项目文件夹打开终端或命令提示符窗口,运行以下命令安装lodash.js: ``` npm install lodash ``` 这将自动下载并安装最新版本的lodash.js到你的项目。 3. CDN:如果你只想暂时使用lodash.js而不想下载到本地,你可以使用CDN(内容分发网络)来引用lodash.js。一些常见的CDN提供商,如cdnjs、unpkg等,都提供了lodash.js的链接。你可以将这些链接直接复制到你的HTML文件的`<script>`标签,从而引入lodash.js。 无论你选择哪种方式,一旦你成功下载了lodash.js,你就可以在你的项目引用它,并使用其的函数和方法来简化你的JavaScript编程工作。 ### 回答2: lodash.js 是一个 JavaScript 库,提供了一组实用的函数,旨在简化处理数组、对象、字符串、函数等常见数据类型的操作。 要下载 lodash.js,可以按照以下步骤进行: 1. 打开 lodash.js 的官方网站(https://lodash.com/)。 2. 在页面找到并点击 "Download"(下载) 按钮。 3. 在下载页面,选择适合的版本和格式。 4. 如果你使用 npm(Node.js 包管理器),可以通过在终端或命令提示符运行以下命令来安装 lodash: ``` npm install lodash ``` 5. 如果你在浏览器使用 lodash,可以直接下载 lodash.js 文件,并将其引入你的网页。点击下载链接,保存 lodash.js 文件到你的项目目录。 6. 在你的 HTML 文件,使用 `<script>` 标签将 lodash.js 引入: ```html <script src="path/to/lodash.js"></script> ``` 其 `path/to/lodash.js` 是你刚才下载 lodash.js 文件的路径。 现在,你就可以在你的项目使用 lodash.js 提供的函数了。引入了 lodash.js 之后,可以通过 `_.`(underscore 是 lodash.js 的函数别名)来调用库的函数。 例如,你可以使用 `_.forEach` 函数来遍历一个数组: ```javascript _.forEach([1, 2, 3], function(value) { console.log(value); }); ``` 总之,下载 lodash.js 主要有两种方式:通过 npm 安装到你的项目,或者直接下载 lodash.js 文件并在你的网页引入。然后,你就可以愉快地使用 lodash.js 提供的实用函数来简化你的 JavaScript 编程。 ### 回答3: lodash.js是一个JavaScript的实用工具库,提供了许多常用的功能函数,可以简化开发过程的操作。要下载lodash.js,可以采取以下步骤: 第一步,打开lodash.js的官方网站。可以通过搜索引擎搜索"lodash.js",找到官方网站的链接。 第二步,进入官方网站后,可以在网站上找到下载选项。一般来说,会有多个版本可供选择,包括编译后的版本和源代码版本。 第三步,选择需要下载的版本。编译后的版本适合直接在浏览器端使用,而源代码版本则可以进行自定义修改。根据自己的需求选择相应的版本。 第四步,完成版本选择后,点击下载链接。根据网速的不同,下载时间会有所不同。 第五步,下载完成后,将lodash.js文件保存到项目目录的合适位置。可以根据自己的项目需求来确定所保存的路径。 第六步,将lodash.js引入到项目的HTML文件。可以使用<script>标签来引入,通过指定文件路径来将lodash.js加载到HTML。 最后,将lodash.js成功下载并引入到项目后,就可以在JavaScript代码使用lodash.js提供的各种实用功能函数了,从而简化开发过程,提高开发效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值