Consider the following arrays. What gets logged in various sorting conditions?
const arr1 = ['a', 'b', 'c'];
const arr2 = ['b', 'c', 'a'];
console.log(
arr1.sort() === arr1,
arr2.sort() == arr2,
arr1.sort() === arr2.sort()
);
A) true true true
B) true true false
C) false false false
D) true false true
Put your answer in the comments!
Top comments (19)
The question, as asked, is misleading. Arrays don't compare in Javascript! 🙂 Also, while the arr1 and arr2 values don't change, the arrays they refer to do, so the
const
is likely to trip some people up.The
.sort
function returns the array that was sorted, so comparingarr1.sort()
toarr1
is just comparing the array reference to itself. The same goes forarr2
on the next line (the use of==
is another potential red herring, since the arrays are the same, so type conversion doesn't happen). Finally, while the sorted arrays contain the same info,arr1
is a different object toarr2
, so the final comparison is false.B
Which part of the question is misleading? Can you quote it here so I can fix it?
Sorry... my wording was probably unclear. I mean that it's a trick question. It has red herrings in it.
The misleading nature is where you state: "...in various sorting conditions?"
This misleads the reader since sorting is irrelevant here. The only real relevance is that the
sort()
method returns the original array object.B). true true false
Because === is used for comparison between two variables but this will check strict type, which means it will check datatype and compare two values and == is used for comparison between two variables irrespective of the datatype of variable.
c
B
D?
B
D
I guess the correct answer is B
B
B
D
Some comments may only be visible to logged-in visitors. Sign in to view all comments.