Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Indexing_Duplicates - Fatal编程技术网

使用Javascript为重复索引创建新循环

使用Javascript为重复索引创建新循环,javascript,arrays,indexing,duplicates,Javascript,Arrays,Indexing,Duplicates,快速提问。我需要使用重复索引创建一个数组。例如,我有一个数组,如: var array = [2, 3, 2, 4, 3, 2, 6, 7]; 我需要为每个重复索引获得一个新的循环交互,响应应该如下所示: [ [2, 3, 4, 6, 7], [2, 3], [2], ] 请让我知道,如果是可能的,以及如何创建一些功能来做到这一点 谢谢大家! 你可以这样做 var数组=[2,3,2,4,3,2,6,7]; array.sort(); 设idx=0,结果=[]; for(设i=

快速提问。我需要使用重复索引创建一个数组。例如,我有一个数组,如:

var array = [2, 3, 2, 4, 3, 2, 6, 7];
我需要为每个重复索引获得一个新的循环交互,响应应该如下所示:

[ 
  [2, 3, 4, 6, 7],
  [2, 3],
  [2],
]
请让我知道,如果是可能的,以及如何创建一些功能来做到这一点


谢谢大家!

你可以这样做

var数组=[2,3,2,4,3,2,6,7];
array.sort();
设idx=0,结果=[];
for(设i=0;i0&&array[i]!=array[i-1]){
idx=0;
}
if(idx==result.length)
结果[idx]=[];
结果[idx].push(数组[i]);
idx++;
}

控制台日志(结果)您可以这样做

var数组=[2,3,2,4,3,2,6,7];
array.sort();
设idx=0,结果=[];
for(设i=0;i0&&array[i]!=array[i-1]){
idx=0;
}
if(idx==result.length)
结果[idx]=[];
结果[idx].push(数组[i]);
idx++;
}

控制台日志(结果)您只需使用一个对象来存储每个元素的引用次数,并使用该值创建结果数组

var数组=[2,3,2,4,3,2,6,7];
var obj={},result=[]
array.forEach(函数(e){
obj[e]==未定义?obj[e]=0:obj[e]+=1;
结果[obj[e]=(结果[obj[e]]| | |[])。concat(e)
})

log(JSON.stringify(result))
您可以只使用一个对象来存储每个元素的出现次数,并使用该值创建结果数组

var数组=[2,3,2,4,3,2,6,7];
var obj={},result=[]
array.forEach(函数(e){
obj[e]==未定义?obj[e]=0:obj[e]+=1;
结果[obj[e]=(结果[obj[e]]| | |[])。concat(e)
})

console.log(JSON.stringify(result))
想要得到的结果背后的逻辑是什么?@Teemu:据我所知,看起来每当你遇到一个值,您尝试将其放入索引最低的输出数组中,但该数组中没有该数字。仅计算数组中每个数字的数量不是更简单吗?前提是每个数字的计数都是所需的输出。@Teemu,我需要为每个交互调用一个API想要的结果背后的逻辑是什么?@Teemu:据我所知,看起来每当你遇到一个值,您尝试将其放入索引最低的输出数组中,该数组中没有该数字。仅计算数组中每个数字的数量不是更简单吗?前提是每个数字的计数都是所需的输出。@Teemu,我需要为每个交互调用API,工作正常,符合预期!非常感谢。工作良好,如预期!非常感谢。