Comparing Arrays by Value in JavaScript
I didn't know I didn't know the answer when my friend showed me a simple piece of JavaScript code and asked me what would happen.
He said this caused a bug in a project he was working on and it took him hours to debug. Since I knew arrays in JavaScript are objects. And objects are only equal when they refer to the same thing in memory. If you do it as shown in ex. {2}, the result will certainly be true
, because x
and y
indeed refer to the same thing.
In ex. {1}, a
and b
are defined differently. And I felt very clever when I correctly said the code on line 🕶 will produce a false
. But —
“If we compare a.valueOf() == b.valueOf()
, the result will surely be true
!” ⋯