Функция _.omit()
поддерживает исключение нескольких клавиш. Функция принимает список параметров, массив ключей или комбинацию параметров и массивов. Чтобы сохранить эту функциональность, вы можете использовать остальные параметры , сгладить их до установить , преобразовать объект в массив записей с помощью Object.entries()
, отфильтруйте его, а затем преобразуйте обратно в объект, используя Object.fromEntries()
.
function omit(obj, ...keys) {
const keysToRemove = new Set(keys.flat()); // flatten the props, and convert to a Set
return Object.fromEntries( // convert the entries back to object
Object.entries(obj) // convert the object to entries
.filter(([k]) => !keysToRemove.has(k)) // remove entries with keys that exist in the Set
);
}
console.log(omit({ foo: 'foo', bar: 'bar', baz: 'baz' }, 'bar'));
console.log(omit({ foo: 'foo', bar: 'bar', baz: 'baz' }, 'bar', 'baz'));
console.log(omit({ foo: 'foo', bar: 'bar', baz: 'baz' }, ['bar', 'baz']));
console.log(omit({ foo: 'foo', bar: 'bar', baz: 'baz' }, 'bar', ['baz']));