Javascript 返回嵌套数组

Javascript 返回嵌套数组,javascript,arrays,sorting,Javascript,Arrays,Sorting,在获取一个数组和另一个数组(重复)后,我需要帮助创建此函数,该数组只包含第一个数组中重复的数字(例如array=[1,2,3,1,2,3,4,5,6,6],duplicate=[1,2,3,6]) 我希望它返回如下数组:finalArray1=[[1,1]、[2,2]、[3,3]、4,5、[6,6]] let input = [1,2,4,591,392,391,2,5,10,2,1,1,1,20,20]; let sortArray = array => { return arra

在获取一个数组和另一个数组(重复)后,我需要帮助创建此函数,该数组只包含第一个数组中重复的数字(例如
array=[1,2,3,1,2,3,4,5,6,6]
duplicate=[1,2,3,6]

我希望它返回如下数组:
finalArray1=[[1,1]、[2,2]、[3,3]、4,5、[6,6]]

let input = [1,2,4,591,392,391,2,5,10,2,1,1,1,20,20];

let sortArray = array => {
  return array.sort(function(a, b) {
    return a - b;});
}

function findDuplicates(data) {

  let duplicate = [];

  data.forEach(function(element, index) {

    // Find if there is a duplicate or not
    if (data.indexOf(element, index + 1) > -1) {

      // Find if the element is already in the duplicate array or not
      if (duplicate.indexOf(element) === -1) {
        duplicate.push(element);
      }
    }
  });

  return duplicate; 
}

let newArray = (array, duplicate) => { 

  for( var i = 0; i < 3; i++ ){
    for( var j = 0; j < 15; j++ ){
      if( duplicate[i] == array[j] ){
        let finalArray = new array().push(array[j]);
      }
    }
    return finalArray;
  }
}
let input=[1,2,4591392391,2,5,10,2,1,1,1,20,20];
让sortArray=array=>{
返回array.sort(函数(a,b){
返回a-b;});
}
功能查找副本(数据){
让重复=[];
data.forEach(函数(元素、索引){
//查找是否有重复项
if(data.indexOf(元素,索引+1)>-1){
//查找元素是否已在重复数组中
if(重复的索引(元素)=-1){
重复。推(元素);
}
}
});
返回副本;
}
让newArray=(数组,重复)=>{
对于(变量i=0;i<3;i++){
对于(var j=0;j<15;j++){
if(重复[i]==数组[j]){
设finalArray=newarray().push(array[j]);
}
}
返回最终射线;
}
}
您可以拿一个,然后按原始顺序返回

映射以插入顺序接收项目,这意味着所有项目都以原始顺序稍后。如果键存在,它将创建一个具有该值的数组。否则,仅将数组中的项作为映射的值

最后,仅从映射中获取值并创建一个数组

let input=[1,2,4,591,392,391,2,5,10,2,1,1,1,20,20],
结果=数组。从(输入)
.reduce((m,v)=>m.set(v,m.has(v)?[].concat(m.get(v),v):v),新地图)
.values()
);

控制台日志(结果)我认为以下内容适用于您:

const input=[1,2,4591392391,2,5,10,2,1,1,1,20,20];
常量inoorder=input.sort((a,b)=>a-b);
const unique=有序减少((a,c)=>{
const found=a.find(e=>e.includes(c));
如果(找到)找到。推(c);
否则a.推([c]);
返回a;
}, []);
const result=unique.map(e=>e.length>1?e:e[0]);

控制台日志(结果)不应该
重复
也有
6
?而且:您从不调用函数
findDuplicates
。如果original的值出现3次会怎样?重复的
是否仍具有唯一值?这将如何影响输出?你需要一个有序的结果吗?是的,我的错,我会编辑它。Use可以使用console.log查看结果,但它不起作用。我对上一个函数有一些问题否我已经做了排序结果并找到了重复项,我只需要上一个函数的帮助,将它们全部放在同一个数组中的不同数组中。非常感谢!!哈哈,我从昨晚开始就在做这个,你用了5行就完成了。你能解释一下你在结果上做了什么吗。我会检查一下,如果我不懂什么,如果你不懂,我会让你知道mind@Ali当然,很乐意帮忙!