2017-01-10 2 views
0

Javascript Проверьте, находятся ли элементы в одном массиве в другом?Javascript Проверьте, находятся ли элементы в одном массиве в другом?

+1

это выглядит как домашнее задание вопрос. вы еще что-нибудь пробовали? – Cruiser

+1

Вы можете попробовать выполнить поиск, потому что этот вопрос задавался много раз раньше, в том числе здесь: http://stackoverflow.com/q/16312528/215552 –

+1

Возможный дубликат [Проверить, содержит ли массив какой-либо элемент другого массива в JavaScript] (http://stackoverflow.com/questions/16312528/check-if-an-array-contains-any-element-of-another-array-in-javascript) –

ответ

1
  1. Сортировать оба массив
  2. перебрать два массивов одновременно, и если значения на те же позиции, не «же», возвращающая ложь.
  3. Если вы достигли конца массива, верните true.
+0

«То же» означает, что элементы в b являются элементами в квадрате, независимо от порядка. – Orangesandlemons

+0

Вопрос говорит независимо от порядка, но –

+0

Независимо от порядка означает, что вы можете изменять порядок элементов массива (например, сортируя массив). Да, вы можете сделать это без сортировки, но это приведет к сложности O (n^2) вместо O (n * log (n)) – Matey

0

Вы можете использовать хеш-таблицу и проверить первый массив для тех же хэшей. Затем верните общие числа.

function comp(array1, array2) { 
 
    var hash = {}; 
 
    array2.forEach(function(a) { 
 
     hash[Math.sqrt(a).toString()] = true; 
 
    }); 
 
    return array1.filter(function (a) { 
 
     return hash[a]; 
 
    }); 
 
} 
 

 
var array1 = [121, 144, 19, 161, 19, 144, 19, 11], 
 
    array2 = [11, 14641, 20736, 361, 25921, 361, 20736, 361]; 
 

 
console.log(comp(array1, array2));

Смежные вопросы