recoil-toolkit
Version:
13 lines • 788 B
JavaScript
export const reverse = (s) => s.slice().reverse();
export const filter = (predicate) => (s) => s.filter(predicate);
export const push = (item, maxSize) => (s) => maxSize === undefined || s.length < maxSize
? [...s, item]
: [...[...s, item].slice(s.length + 1 - maxSize, s.length + 1)];
export const unshift = (item, maxSize) => (s) => maxSize === undefined || s.length < maxSize
? [item, ...s]
: [item, ...s.slice(0, maxSize - 1)];
export const updateObj = (item, match) => (s) => s.map(el => (Object.keys(match).every(k => match[k] === el[k]) ? Object.assign(Object.assign({}, el), item) : el));
export const removeObj = (match) => filter(el => !Object.keys(match).every(k => match[k] === el[k]));
//alias
export const pushTop = unshift;
//# sourceMappingURL=array.js.map