Vinkel delad lista


Jag har en lista som ser ut så här

[[{A},{B}], {C}]

Finns det någon enkel metod utan att behöva skapa en funktion som kommer att platta ut detta till en array som ser ut så här

[{A},{B},{C}]

Jag sökte på SO men hittade ingenting med TypeScript-metoder.

Tack.

Redigera: A, B och C är av samma typ.

Svar #1

Det verkar som att det du letar efter är den inbyggda Array.prototype.flat:

const input = [['foo', 'bar'], 'baz'];
const output = input.flat(); // ['foo', 'bar', 'baz']

Observera att du måste kompilera detta med esnext-stöd. Se denna fråga för mer information. Det fungerar inte heller direkt i IE eller Edge. Om det är ett problem i ditt användningsfall, vill du använda polyfill som visas i MDN-länken ovan.

Alternativ finns i många bibliotek, till exempel har lodash, underscore.js och Ramda alla en motsvarande flatten-metod.

Relaterade artiklar