Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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 - Fatal编程技术网

Javascript 在数组中查找臭名昭著的元素

Javascript 在数组中查找臭名昭著的元素,javascript,Javascript,我想使用javascript在数组中找到臭名昭著的元素。 我找到了最常见的元素,现在我需要找到数组中臭名昭著的元素。 数组:[4,4,4,4,1,4,4] 有什么想法吗?您可以从迭代数组开始,计算每个元素出现的次数。由于您需要最小公共值的第一个实例,因此还需要在值第一次出现时存储索引,因为您不能依赖于它们插入对象的顺序,因为对象没有顺序 然后找到索引最低的最小公共值,例如 var数据=[4,4,4,1,4,4,2,4,4]; var值=数据减少(功能(acc,值,i){ 如果(!acc.has

我想使用javascript在数组中找到臭名昭著的元素。 我找到了最常见的元素,现在我需要找到数组中臭名昭著的元素。 数组:
[4,4,4,4,1,4,4]


有什么想法吗?

您可以从迭代数组开始,计算每个元素出现的次数。由于您需要最小公共值的第一个实例,因此还需要在值第一次出现时存储索引,因为您不能依赖于它们插入对象的顺序,因为对象没有顺序

然后找到索引最低的最小公共值,例如

var数据=[4,4,4,1,4,4,2,4,4];
var值=数据减少(功能(acc,值,i){
如果(!acc.hasOwnProperty(值)){
acc[value]={计数:0,索引:i};
}
acc[值]。计数++;
返回acc;
}, {});
log('Collated values:\n'+JSON.stringify(values));
var结果=对象。键(值)。减少(函数(acc,值){
var obj=值[值];

if(obj.count这里有一个简单的解决方案,可以找出数组中著名和不知名的元素-

var mainArr=[4,4,4,1,4,4];
var ele=[],occ=[];
var str=“”;
对于(var索引,计数=0;计数-1){
occ[索引]+;
}否则{
电子推送(主阵列[计数]);
occ.推送(1);
}
}
log(“臭名昭著的:+ele[occ.indexOf(Math.min.apply(null,occ)));

console.log(“著名的:“+ele[occ.indexOf(Math.max.apply(null,occ))”);
所说的“臭名昭著”是指唯一一次出现的元素吗?(这不是“臭名昭著”的意思。)如果数组是
[4,4,4,2,4,1,4]
-您预期的结果是
2
还是
1
,还是
[2,1]
,或者…?是的,我指的是一次出现的元素。如果有多个元素,它应该返回第一个元素。有什么想法吗?我想你是在寻找“不频繁”,而不是“臭名昭著”.所以你需要计算每次发生的次数,得到最低的频率,然后是第一次发生那么多次。我想这里已经有了答案来解决所有这些问题。“我找到了最常见的元素”-你是怎么做到的?正常的”过程是使用工作对象在数组上迭代,以记录每个值出现的次数,因此如果这样做,相同的代码可以找到最常见和最不常见的值。我发现使用了两个循环。下面是我的代码: