Lodash — очень популярная служебная библиотека JavaScript, предоставляющая набор оптимизированных и повторно используемых функций, которые упрощают написание различных распространенных задач при разработке JS.
Ниже приводится подробное введение в общие функции и использование Lodash:
1. Операции с массивами
1. Скопируйте массив:clone(array)
Пример использования:
const arr1 = [1, 2, 3];
const arr2 = _.clone(arr1);
console.log(arr2); // [1, 2, 3]
2. Объедините несколько массивов:concat(...arrays)
Пример использования:
const arr1 = [1, 2];
const arr2 = [3, 4];
const arr3 = _.concat(arr1, arr2);
console.log(arr3); // [1, 2, 3, 4]
3. Удалите все подходящие элементы массива:remove(array, [predicate=_.identity])
Пример использования:
const arr = [1, 2, 3, 4, 5];
_.remove(arr, n => n % 2 === 0); // 删除所有偶数
console.log(arr); // [1, 3, 5]
4. Нарушить порядок массива:shuffle(array)
Пример использования:
const arr = [1, 2, 3, 4, 5];
_.shuffle(arr);
console.log(arr); // [3, 1, 5, 4, 2](随机顺序)
5. Дедупликация массива:uniq(array)
Пример использования:
const arr = [1, 1, 2, 3, 3, 4, 5];
_.uniq(arr);
console.log(arr); // [1, 2, 3, 4, 5]
2. Операция с объектом
1. Скопируйте объект:clone(value)
Пример использования:
const obj1 = { foo: 'bar' };
const obj2 = _.clone(obj1);
console.log(obj2); // {foo: "bar"}
2. Глубокое объединение нескольких объектов:merge(object, [sources])
Пример использования:
const object = {
a: [{ b: { c: 3 } }],
d: { e: 2 },
};
const other = {
a: [{ b: { d: 4 } }],
f: { g: 5 },
};
_.merge(object, other);
console.log(object); // {a: [{b: {c: 3, d: 4}}], d: {e: 2}, f: {g: 5}}
3. Получите значение указанного свойства от объекта:get(object, path, [defaultValue])
Пример использования:
const obj = { user: { name: 'John' } };
const name = _.get(obj, 'user.name', 'unknown');
console.log(name); // John
4. Определите, относится ли переменная к типу объекта:isObject(value)
Пример использования:
console.log(_.isObject({})); // true
console.log(_.isObject(null)); // false
console.log(_.isObject(1)); // false
5. Сравнение глубины объекта:isEqual(value, other)
Пример использования:
const obj1 = { foo: 'bar' };
const obj2 = { foo: 'bar' };
const isEqual = _.isEqual(obj1, obj2);
console.log(isEqual); // true
3. Строковые операции
1. Сделайте первую букву заглавной:capitalize([string=''])
Пример использования:
console.log(_.capitalize('hello world')); // 'Hello world'
2. Экранируйте символы HTML:escape([string=''])
Пример использования:
console.log(_.escape('<div>Hello</div>')); // '<div>Hello</div>'
3. Преобразуйте строку в верблюжий регистр:camelCase([string=''])
Пример использования:
console.log(_.camelCase('foo_bar_baz')); // 'fooBarBaz'
4. Преобразуйте строку в подчеркивание:snakeCase([string=''])
Пример использования:
console.log(_.snakeCase('fooBarBaz')); // 'foo_bar_baz'
5. Удалите пробелы на обоих концах строки:trim([string=''], [chars=whiteSpace])
Пример использования:
console.log(_.trim(' hello world ')); // 'hello world'
4. Функциональная работа
1. Функция задержки выполнения:debounce(func, [wait=0], [options={}])
Пример использования:
function foo() {
console.log('bar');
}
const debouncedFoo = _.debounce(foo, 1000);
debouncedFoo(); // 等待1秒后才会输出'bar'
2. Выполнить через n секунд после вызова функции:delay(func, wait, args)
Пример использования:
function foo() {
console.log('bar');
}
_.delay(foo, 1000); // 等待1秒后输出'bar'
3. Этот объект функции привязки:bind(func, thisArg, [partials])
Пример использования:
const obj = { x: 42 };
function foo() {
return this.x;
}
const boundFoo = _.bind(foo, obj);
console.log(boundFoo()); // 42
4. Разрешить выполнение функции только один раз:once(func)
Пример использования:
function foo() {
console.log('bar');
}
const onceFoo = _.once(foo);
onceFoo(); // 只输出一次'bar'
onceFoo();
onceFoo();
5. Функция регулирования:throttle(func, [wait=0], [options={}])
Пример использования:
function foo() {
console.log('bar');
}
const throttledFoo = _.throttle(foo, 1000);
throttledFoo(); // 立即输出'bar'
setTimeout(() => {
throttledFoo(); // 1秒后再次输出'bar'
}, 1500);
Вышеупомянутое — это лишь некоторые распространенные функции и способы использования, предоставляемые Lodash. На самом деле, функции, предоставляемые в Lodash, очень богаты и охватывают различные распространенные сценарии разработки. Если вам нужна определенная функция в повседневной разработке, вы можете сначала проверить, предоставляет ли Lodash соответствующую функцию, чтобы не изобретать велосипед заново.