import { Meta } from '@storybook/addon-docs/blocks'

<Meta title='@dxtmisha/ru/functional-basic/Functions/getObjectNoUndefined - Удаление свойств со значением-исключением'/>

# `getObjectNoUndefined`

Создает и возвращает новый объект, в который скопированы только те свойства исходного объекта или массива, значения которых **не равны** значению-исключению (строгое сравнение). По умолчанию значением-исключением является `undefined`.

Функция полезна для очистки данных перед отправкой на сервер или для нормализации объектов. При передаче массива индексы будут преобразованы в строковые ключи результирующего объекта.

**Параметры:**
- `data: T` — Исходный объект или массив (где `T extends Record<string | number, any>`).
- `exception: any` — Значение, свойства с которым будут исключены. По умолчанию равно `undefined`.

**Возвращает:**
`T` — Новый объект, очищенный от свойств с указанным значением.

```typescript
import { getObjectNoUndefined } from '@dxtmisha/functional-basic'

const user = {
  name: 'John',
  age: 25,
  description: undefined, // Будет удалено (по умолчанию)
  status: 'guest'
}

console.log(getObjectNoUndefined(user)) 
// { name: 'John', age: 25, status: 'guest' }

// Удалить свойства со значением 'guest'
console.log(getObjectNoUndefined(user, 'guest'))
// { name: 'John', age: 25, description: undefined }
```
