Find the intersection of arrays
Return the distinct values that occur in both arrays.
function intersection({ left, right }) { const other = new Set(right); return [...new Set(left)].filter(value => other.has(value)); }
Input & expected output
Input
{
"left": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"right": [
"[email protected]",
"[email protected]"
]
}Expected output
[
"[email protected]"
]The edge case
Input
{
"left": [],
"right": [
1
]
}Expected output
[]Know the limits
- Result order follows the first array. Duplicate results are removed.
- Objects are compared by identity, not by their properties.
- Example: recipients that are also on a suppression list. Compare normalized addresses, and treat the provider’s suppression state as the authority.
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 Get the intersection of arrays from the original 1loc collection by Nguyen Huu Phuoc, with vreymond, robinpokorny. Copyright (c) 2020 phuoc-ng. MIT licensed.
Curated implementation; explicit input bounds, edge cases, local fixtures and rebuilt presentation. 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.