Array Equality S1
- Stage: Stage 1
- Status: Active
- ECMAScript edition: —
- Synchronized: Aug 28, 2026
- 中文译文 · Source repository
This proposal addresses the lack of a standard method to compare arrays for equality, especially deeply nested ones. It proposes adding an Array.prototype.equals method that performs deep comparison. The proposal is at an early stage, with no implementation details or standardization progress mentioned.
The README below comes from the upstream repository and may contain outdated stage or status metadata. Use the proposal details above as the current source of truth.
proposal-array-equality
Determining whether two arrays are equal.
Author: Hemanth HM
Champions: Jordan Harband & Hemanth HM
Motivation:
Today we don't have straightforward way to check if two arrays are equal, it get more messier to check when they are deeply nested arrays.
How is this currently handled?
There is no standard way to do it, there are few modules like array-equal, deep-equal with like 5M and 8M downloads per week respectively, which is subset of deep comparison.
Consider few examples:
node builtin:
Proposal:
Have a Array.prototype.equals method, they might look like:
How are other langugaes handling this?
Ruby: array1.to_set == array2.to_set
Python: [1,[2,3]] == [1,[2,3]]
Java: java.util.Arrays.equal
C#: Enumerable.Except or SequenceEqual