可以通过 npm 或 yarn 安装 Lodash:
npm install lodash
将数组分成指定大小的块:
const _ = require('lodash');
const array = [1, 2, 3, 4, 5, 6, 7];
const chunks = _.chunk(array, 3);
console.log(chunks); // [[1, 2, 3], [4, 5, 6], [7]]
创建一个具有唯一值的数组,这些值在第一个数组中不包含在其他给定的数组中:
const array1 = [1, 2, 3, 4];
const array2 = [2, 4];
const difference = _.difference(array1, array2);
console.log(difference); // [1, 3]
将源对象的所有可枚举属性分配到目标对象上:
const object = { a: 1 };
const source = { b: 2, c: 3 };
const result = _.assign(object, source);
console.log(result); // { a: 1, b: 2, c: 3 }
获取对象的属性值,如果属性不存在则返回默认值:
const object = { a: { b: { c: 3 } } };
const value = _.get(object, 'a.b.c', 'default');
console.log(value); // 3
将字符串转换为 camelCase 格式:
const result = _.camelCase('Foo Bar');
console.log(result); // 'fooBar'
将字符串转换为 kebab-case 格式:
const result = _.kebabCase('Foo Bar');
console.log(result); // 'foo-bar'
创建一个防抖动函数,该函数会在等待一定时间后调用:
const saveInput = _.debounce((input) => {
console.log('Saving data', input);
}, 300);
document.querySelector('input').addEventListener('input', (event) => {
saveInput(event.target.value);
});
创建一个节流函数,该函数在一定时间内只会执行一次:
const log = _.throttle(() => {
console.log('Log message');
}, 1000);
setInterval(log, 100); // 每隔一秒打印一次日志
创建一个新数组,其值为传入函数处理过的集合中的每个元素:
const users = [{ 'user': 'barney' }, { 'user': 'fred' }];
const names = _.map(users, 'user');
console.log(names); // ['barney', 'fred']
遍历集合元素,返回所有通过函数真值检测的元素数组:
const users = [
{ 'user': 'barney', 'active': true },
{ 'user': 'fred', 'active': false },
];
const activeUsers = _.filter(users, { 'active': true });
console.log(activeUsers); // [{ 'user': 'barney', 'active': true }]