获取嵌套数组中重复数字的最快和最高效的方法。
- 论坛
- 获取嵌套数组中重复数字的最快和最高效的方法。
8 浏览
获取嵌套数组中重复数字的最快和最高效的方法。
我知道可以使用许多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() }
在处理更大数据值时,这个方法还能更优化吗?