apps-script-utils (Українська) 2.1.1 Help

compact

function compact<T>(array: Array<T | Falsy>): T[];

compact відкидає false, null, undefined, 0, -0, 0n, "" і NaN, а решту повертає новим масивом. Вихідний масив не змінюється.

Сенс цієї функції порівняно з array.filter(Boolean) — у типі: TypeScript зберігає початковий тип елемента, тому коду доводиться вручну прибирати null. compact повертає T[] без приведення типу.

Зверніть увагу: 0 і "" теж хибні. Для даних із таблиці це зазвичай не те, що потрібно — 0 повноцінне число, а порожня комірка приходить як "", — і тоді доречніший array.filter(nonNil), який прибирає лише відсутні значення.

Параметри

Параметр

Тип

Опис

array

Array<T \| Falsy>

Масив для очищення. Не змінюється.

Повертає

T[] — новий масив лише з істинних значень, у початковому порядку.

Винятки

Виняток

Умова

TypeError

array не є масивом.

Приклади

Відкидання хибних значень

compact([0, 1, false, 2, "", 3, null]); // => [1, 2, 3] compact([NaN, undefined]); // => [] compact([0, ""]); // => [] — both are falsy

Читання стовпця без порожніх комірок

The column arrives as Array<string | null> and leaves as string[], with no cast in between.

/** * Reads a column of identifiers and drops the blanks, without a cast: * `compact` returns `string[]`, not `Array<string | null>`. */ export function readIds(sheet: GoogleAppsScript.Spreadsheet.Sheet): string[] { const column = sheet.getRange("A2:A").getValues().flat() as Array<string | null>; return compact(column); }
function readIds(sheet) { const column = sheet.getRange("A2:A").getValues().flat(); return compact(column); }

Коли nonNil підходить краще

import { nonNil } from "apps-script-utils"; const cells = [0, "", 5, null]; // a column read from a sheet compact(cells); // => [5] — drops the legitimate 0 and the empty cell cells.filter(nonNil); // => [0, "", 5] — drops only the absent values

Дивіться також

Вихідний код

src/lang/array/compact.ts

23 September 2026

Цю документацію згенеровано нейромережею (Claude) на основі вихідного коду бібліотеки.