空时跳过比较数组

我有一个案例,必须将一些数组比较在一起,并找到所有数组之间的公共元素。只要加载了所有数组,以下代码就可以正常工作。但是,如果该数组中的一个(甚至5个数组)仍然为空并且没有加载怎么办?


如果只有两个数组,我可以做类似的事情


  if ((arr1.length > 0) && (arr2.length === 0)) {

     newArr =arr1;

  }

但是以这种方式检查所有6个数组将是一个很大的条件片段!如何解决此问题,使代码仅在加载数组时才与数组进行比较,而在数组为空时跳过数组?


let newArr = [];

function common(arr1, arr2, arr3, arr4,arr5,arr6) {

  newArr = arr1.filter(function(e) {

    return arr2.indexOf(e) > -1 && 

           arr3.indexOf(e) > -1 && 

           arr4.indexOf(e) > -1 && 

           arr4.indexOf(e) > -1 && 

           arr5.indexOf(e) > -1 && 

           arr6.indexOf(e) > -1;

  });

}

common( [1, 2, 6, 5, 9,8], 

  [1, 2, 3, 6, 5, 9,8], 

        [6, 5, 4, 5,8], 

        [8, 2, 1, 6, 4], 

        [8, 2, 1, 6, 4], 

        //[8]

        []

        );


$('div').text(newArr);

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<p> Returns Nothing Because 6th Array is Empty</p>

  <div></div>


蝴蝶不菲
浏览 170回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript