new Set(arr1) 的最大亮点是什么?

What is the Big Oh of new Set(arr1)?

我在做一道小题在两个数组中寻找共同元素

function isCommonElementsPresent2(arr1,arr2){
   let set = new Set();

   for(let i=0;i<arr1.length;i++){
      set.add(arr1[i]);
   }

   for(let i=0;i<arr2.length;i++){
     if(set.has(arr2[i])){
       console.log(arr2[i]);
     }
   }
}  //Big Oh of this is O(N+M) 

现在如果我解决下面同样的问题

Big-Oh 会变成什么样子?它会一样还是会改变?什么是let set = new Set(arr1);

的Big-Oh
function isCommonElementsPresent2(arr1,arr2){
   let set = new Set(arr1);

   for(let i=0;i<arr2.length;i++){
     if(set.has(arr2[i])){
       console.log(arr2[i]);
     }
   }
}
isCommonElementsPresent2(["a","b","y","e","f"],["z","y","f"]);

//What is the Big-Oh of this code block?

有人可以指导我吗?

计算复杂度是一样的。在这两种情况下,arr1 的每个元素都需要迭代才能放入集合中。

let set = new Set();
for(let i=0;i<arr1.length;i++){
  set.add(arr1[i]);
}

一样贵
let set = new Set(arr1);