У меня есть два массива: один заполнен информацией из запроса ajax, а другой хранит кнопки, на которые нажимает пользователь. Я использую этот код (я набрал номера образцов):
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();
}
Но он всегда дает false
, даже если два массива одинаковы, но с разными именами. (Я проверил это в консоли Chrome JS). Итак, есть ли способ узнать, содержат ли эти два массива то же самое? Почему выдает ложное
? Как я могу узнать, каких значений в первом массиве нет во втором?
Ответ после долгого времени, но надежды это поможет кому-то кто, ища простое решение и современных новичков.
Теперь мы можем достигнуть этого пользующегося несколькими библиотеками как lodash
, underscore
, и т.д. (Они становятся частью проекта в наше время из-за простоты, нескольких функций и высокого использования)
, можно использовать пересечение из lodash библиотеки.
_.intersection(['2-1', '1'], ['2-2', '3-1', '2-1']);
// => ['2-1']
Это будет работать на любой тип данных..