Skip to content

useFlatMap (JavaScript)

Language JavaScript (and super languages)
biome.json
{
"linter": {
"rules": {
"complexity": {
"useFlatMap": "error"
}
}
}
}

Promotes the use of .flatMap() when map().flat() are used together.

Using .flatMap() instead of map().flat() avoids the creation of an intermediate array.

const array = ["split", "the text", "into words"];
array.map(sentence => sentence.split(' ')).flat();
code-block.js:2:1 lint/complexity/useFlatMap  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ℹ The call chain .map().flat() can be replaced with a single .flatMap() call.

1 │ const array = ["split", "the text", "into words"];
> 2 │ array.map(sentence => sentence.split(' ')).flat();
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 │

ℹ Using .flatMap() avoids the creation of an intermediate array.

ℹ Safe fix: Replace the chain with .flatMap().

1 1 │ const array = ["split", "the text", "into words"];
2 │ - array.map(sentence·=>·sentence.split('·')).flat();
2 │ + array.flatMap(sentence·=>·sentence.split('·'));
3 3 │

const array = ["split", "the text", "into words"];
array.map(sentence => sentence.split(' ')).flat(1);
code-block.js:2:1 lint/complexity/useFlatMap  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ℹ The call chain .map().flat() can be replaced with a single .flatMap() call.

1 │ const array = ["split", "the text", "into words"];
> 2 │ array.map(sentence => sentence.split(' ')).flat(1);
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3 │

ℹ Using .flatMap() avoids the creation of an intermediate array.

ℹ Safe fix: Replace the chain with .flatMap().

1 1 │ const array = ["split", "the text", "into words"];
2 │ - array.map(sentence·=>·sentence.split('·')).flat(1);
2 │ + array.flatMap(sentence·=>·sentence.split('·'));
3 3 │

const array = ["split", "the text", "into words"];
array.map(sentence => sentence.split(' ')).flat(2);