minchuan-lodash
Version:
A lightweight lodash alternative
72 lines (67 loc) • 1.88 kB
JavaScript
function chunk(array, size) {
var result = [];
for (var i = 0; i < array.length; i += size) {
result.push(array.slice(i, i + size));
}
return result;
}
function compact(array) {
return array.filter(Boolean);
}
function concat() {
var arrays = [];
for (var _i = 0; _i < arguments.length; _i++) {
arrays[_i] = arguments[_i];
}
return arrays.flat();
}
function cloneDeep(obj) {
return JSON.parse(JSON.stringify(obj));
}
function merge(target, source) {
return Object.assign({}, target, source);
}
function pick(obj, keys) {
var result = {};
keys.forEach(function (key) {
if (key in obj) {
result[key] = obj[key];
}
});
return result;
}
function debounce(func, wait) {
var timeout;
return function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
clearTimeout(timeout);
timeout = setTimeout(function () { return func.apply(void 0, args); }, wait);
};
}
function throttle(func, limit) {
var inThrottle = false;
return function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (!inThrottle) {
func.apply(void 0, args);
inThrottle = true;
setTimeout(function () { return (inThrottle = false); }, limit);
}
};
}
function isNil(value) {
return value === null || value === undefined;
}
function isObject(value) {
return typeof value === 'object' && value !== null;
}
function isFunction(value) {
return typeof value === 'function';
}
export { chunk, cloneDeep, compact, concat, debounce, isFunction, isNil, isObject, merge, pick, throttle };