Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何提高javascript数组操作中嵌套循环的性能?_Javascript_Arrays_Loops_Big O - Fatal编程技术网

如何提高javascript数组操作中嵌套循环的性能?

如何提高javascript数组操作中嵌套循环的性能?,javascript,arrays,loops,big-o,Javascript,Arrays,Loops,Big O,我做了一个编码挑战,要求通过只添加一次重复元素并保持数组元素的顺序,将数组的输入合并到一个新数组中。我的解决方案如下: function union(arr){ let newArr = []; let length = arr.length; for(let i=0; i< length; i++){ for(let j=0; j<arr[i].length; j++){ if(!newArr.includes(arr[i][j])){ newArr.p

我做了一个编码挑战,要求通过只添加一次重复元素并保持数组元素的顺序,将数组的输入合并到一个新数组中。我的解决方案如下:

function union(arr){
 let newArr = [];
 let length = arr.length;
 for(let i=0; i< length; i++){
   for(let j=0; j<arr[i].length; j++){
   if(!newArr.includes(arr[i][j])){
     newArr.push(arr[i][j]);
   }
  }
 }
 return newArr;
功能联合(arr){
设newArr=[];
let length=arr.length;
for(设i=0;i对于(假设j=0;j,如果允许的话,我建议将所有数组添加到
集合
(重复项将被忽略),然后将集合转换回数组:

函数联合(输入){
常量集=新集(input.flat());
返回[…设置];
}

console.log(union([[2,3],[3,4]]);
如果允许的话,我建议将所有数组添加到
集合中(重复项将被忽略),然后将集合转换回数组:

函数联合(输入){
常量集=新集(input.flat());
返回[…设置];
}

console.log(union([[2,3],[3,4]]);
可能更适合使用数组展开的第一个展开方法,然后从展开的数组中创建一个集合,该集合将删除重复项。您已经在O(n)中完成了此操作两行code@quirimmo你能详细介绍一下扁平阵列吗?也许更适合第一个扁平阵列的扁平方法,然后从扁平阵列中创建一个集来删除重复项。你已经在O(n)和两行中完成了code@quirimmo你能详细介绍一下扁平阵列吗?这正是我要做的:)我以为问题已经结束了,我只是放弃了一个评论而不是一个回答,这正是我要做的:)我以为问题结束了,我只是放弃了一个评论而不是一个回答