Javascript检查一个数组中的项是否存在于另一个数组中?

Javascript检查一个数组中的项是否存在于另一个数组中?,javascript,Javascript,Javascript检查一个数组中的项是否存在于另一个数组中 对两个数组进行排序 同时迭代两个数组,如果相同位置上的值不“相同”,则返回false 如果到达数组末尾,则返回true 您可以使用哈希表并检查第一个数组中是否有相同的哈希值。然后返回常用数字 函数comp(array1,array2){ var hash={}; array2.forEach(函数(a){ hash[Math.sqrt(a).toString()]=true; }); 返回阵列1.过滤器(函数(a){ 返回散列[a]

Javascript检查一个数组中的项是否存在于另一个数组中

  • 对两个数组进行排序
  • 同时迭代两个数组,如果相同位置上的值不“相同”,则返回false
  • 如果到达数组末尾,则返回true

  • 您可以使用哈希表并检查第一个数组中是否有相同的哈希值。然后返回常用数字

    函数comp(array1,array2){
    var hash={};
    array2.forEach(函数(a){
    hash[Math.sqrt(a).toString()]=true;
    });
    返回阵列1.过滤器(函数(a){
    返回散列[a];
    });
    }
    var array1=[121,144,19,161,19,144,19,11],
    array2=[11146412073616361];
    
    控制台日志(comp(array1,array2))这看起来像一个家庭作业问题。你试过什么了吗?你可以试着搜索,因为这个问题已经被问过很多次了,包括这里:“相同”的可能重复意味着,在这里,b中的元素是a平方中的元素,不考虑顺序。问题是不考虑顺序思想不考虑顺序意味着您可以自由更改数组项的顺序(例如,通过对数组排序)。是的,你可以不用排序,但这会导致O(n^2)的复杂性而不是O(n*log(n))我不知道这意味着什么基本上,如果将数组A中的每个项与数组B中的每个项进行比较,检查两个数组“相同性”的最常用方法是比较。这是一个非常多的比较。如果先对数组排序,则不需要将每个项与每个项进行比较,程序将更快完成。如果你认真对待编程,我建议你学习算法和复杂性。