获取嵌套数组中重复数字的最快和最高效的方法。

8 浏览
0 Comments

获取嵌套数组中重复数字的最快和最高效的方法。

我知道可以使用许多if...else语句来实现,但我需要一种更快速和更高效的方法。

我需要一个函数,它将遍历嵌套数组并返回在嵌套数组中出现多次的数字。

这个在处理嵌套数组时无法正常工作,即使使用flat(),当数组中的重复项超过2个时,代码仍然会出错。

例如-

我们将函数的名称称为deepSort(nestedArray)

其中nestedArray是嵌套数组的参数

deepSort([[1,3,4,5], [4,7,9,1,3], [2,3,5], [1,2,3,4]]) //返回1,2,3,4,5

deepSort([[1,2,3], [4,5], [6,7,8], [2,9,0]]) //返回2

deepSort([[2,7,9], [4,3], [9,6,5], [1,4,3]]) //返回3,4,9

我尝试过的方法

function deepSort(nestedArray) {
  const flatArr = nestedArray.flat().sort();
  let results = []
  for (let i = 0; i < flatArr.length - 1; i++) {
    if (flatArr[i + 1] ==flatArr[i]) {
      results.push(flatArr[i]);
    }
  }
  return (results.filter((item,index) => results.indexOf(item) === index)).join()
}

在处理更大数据值时,这个方法还能更优化吗?

0