Symbol.isConcatSpreadable
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since abril de 2017.
O Symbol.isConcatSpreadable é um símbolo conhecido que é usado para configurar se um objeto deve ser achatado para um elemento da array quando usado o método Array.prototype.concat().
Experimente
Descrição
O @@isConcatSpreadable símbolo (Symbol.isConcatSpreadable) pode também ser definido como uma propriedade própria ou herdada e seu valor é um booleano. Ele consegue controlar o comportamento das arrays e objetos semelhantes a array:
- For array objects, the default behavior is to spread (flatten) elements.
Symbol.isConcatSpreadablecan avoid flattening in these cases. - For array-like objects, the default behavior is no spreading or flattening.
Symbol.isConcatSpreadablecan force flattening in these cases.
Property attributes of Symbol.isConcatSpreadable | |
|---|---|
| Writable | no |
| Enumerable | no |
| Configurable | no |
Exemplos
Arrays
Por padrão, o Array.prototype.concat() espalha (alinha) arrays no seus resultados:
Quando configurando o Symbol.isConcatSpreadable para false, o comportamento padrão dele:
Objetos de array semelhantes
Para objetos de array semelhantes, o padrão não é espalhado. Symbol.isConcatSpreadableprecisa ser configurado para true para poder conseguir um a array alinhada:
Nota:
A propriedade length é usada para controlar o número de propriedade dos objetos para ser adicionado. No exemplo acima, length:2 indica que duas propriedades tem de ser adicionado.
Especificações
| Specification |
|---|
| ECMAScript® 2026 Language Specification # sec-symbol.isconcatspreadable |