Question: I have these two arrays: one is filled with information from an ajax request and another stores the buttons the user clicks on. I use this code (I filled with sample numbers):

```
var array1 = [2, 4];
var array2 = [4, 2]; //It cames from the user button clicks, so it might be disordered.
array1.sort(); //Sorts both Ajax and user info.
array2.sort();
if (array1==array2) {
    doSomething();
}else{
    doAnotherThing();
}

```

But it always gives `false`, even if the two arrays are the same, but with different name. (I checked this in Chrome's JS Console). So, is there any way I could know if these two arrays contain the same? Why is it giving `false`? How can I know which values in the first array are not in the second?

Answer: 
Object equality check:`JSON.stringify(array1.sort()) === JSON.stringify(array2.sort())`

The above test also works with arrays of objects in which case use a sort function as documented in <http://www.w3schools.com/jsref/jsref_sort.asp>

Might suffice for small arrays with flat JSON schemas.
Answering after long time but hope this will help somebody who looking for a simple solution and modern newbies.

Now we can achieve this using multiple libraries like `lodash`, `underscore`, etc. (These becomes part of the project nowadays due to simplicity, multiple features and high usage)

You can use intersection from lodash library.

```
_.intersection(['2-1', '1'], ['2-2', '3-1', '2-1']); 
// => ['2-1']

```

This will work for any data type..