Go to comments

第三方库 Lodash

官网:

https://lodash.com/docs


中文网:

https://www.lodashjs.com/


CDN:

<script src="https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>


Lodash是一个针对ES的古老工具库,它出现在ES5之前


Lodash提供了大量的API,弥补了ES中对象、函数、数组API不足的问题

你可以想到的大部分工具函数,都可以在Lodash中找到

如果你不编写框架或通用库,一般不会用到Lodash


引用lodash库后,获得一个全局对象(下划线)

<script src="https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>
<script>

console.log(_); // ƒ Z(n){if(cc(n)&&!bh(n)&&!(n instanceof Ct)){if(n instanceof Y)return n;if(bl.call(n,"__wrapped__"))return eo(n)}return new Y(n)}

</script>


 _.chunk() 

拆分数组,把数组每3位分割成一个数组

console.log(_.chunk([3,4,6,7,1,2], 3)); // [[3, 4, 6],[7, 1, 2]]


 _.times(n, Function) 

第二个参数是一个函数,把这个函数调用n次

console.log(_.times(3, String)); // ['0', '1', '2']

1. 把每次调用函数返回的结果,保存到数组里面

2. 函数的参数index从 0, 1, 2, 3... 开始

3. String() 就是一个函数,把传进去的数字转换成字符串,所以数组里每一位都是字符串


循环三次,第一次循环把0传进去,第二次循环传1,第三次循环传2

function fn(n){
	return n + 1;
}
console.log(_.times(3, fn)); // [1, 2, 3]


作业,创建一个1~10的数组

console.log(_.times(10, (n)=> n +1)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


 _.constant(value) 

创建一个返回value的函数,得到的是一个常量,返回一个函数(fn),调用fn()每次都返回1

var fn = _.constant(1);

console.log(fn()); // 1
console.log(fn()); // 1
console.log(fn()); // 1


作业练习题

/**
* 练习1:产生一个长度为10的数组,数组的值从1~10
* 期望结果:[1,2,3,4,5,6,7,8,9,10]
* 提示:times函数
*/


/**
* 练习2:去掉对象无关的属性
* 对象 obj 中有一些我们不需要的属性,仅保留属性 name 和 age,去掉其他属性
* 期望结果:{name:'于谦', age:52}
* 提示:pick函数
*/
const obj = {
name: '于谦',
father: '郭老爷子',
age: 52,
sex: '男',
hobbies: ['抽烟', '喝酒', '烫头'],
};


/**
* 练习3:arr1 保存了用户选中的号码, arr2 保存了开奖号码,比较 arr1 和 arr2,看用户选对了几个数字
* 注意,用户错误的选择了一些重复的数字,要先去掉 arr1 的重复数字
* 期望结果:[19, 17]
* 提示:uniq函数、intersection函数
*/
const arr1 = [11, 33, 5, 19, 45, 17, 33, 45];
const arr2 = [1, 17, 19, 26, 55];



Leave a comment 0 Comments.

Leave a Reply

换一张