Intersperse element between elements
Insert a separator between every pair of items.
function intersperse({ values, separator }) { return values.flatMap((value, i) => (i === 0 ? [value] : [separator, value])); }
Input & expected output
Input
{
"values": [
"ana",
"rui",
"lia"
],
"separator": ","
}Expected output
[
"ana",
",",
"rui",
",",
"lia"
]The edge case
Input
{
"values": [],
"separator": ","
}Expected output
[]Know the limits
- The original built Array(2n − 1), which throws for an empty array; flatMap returns [].
The function above is the implementation used by the lab. The lab validates JSON types and caps size before execution; include equivalent validation when accepting untrusted input in your application.
Source & maintenance
Based on Intersperse element between elements from the original 1loc collection by Nguyen Huu Phuoc, with iamandrewluca. Copyright (c) 2020 phuoc-ng. MIT licensed.
Uses flatMap; the original threw for an empty array. Original MDX retained as inert source evidence.
Maintained by Oveyon. Source commit: 14b481cf60df. Read the license.
Keep exploring
- Clone an array — Create a new array without copying the objects inside it.
- Remove duplicate values — Keep the first occurrence of each value, in its original order.
- Flatten a nested array — Turn a nested array into one sequence of values.