在javascript中查找数组中具有重复项的第二大元素
我有数组来查找第二大元素,包括重复值,请查找下面的示例在javascript中查找数组中具有重复项的第二大元素,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我有数组来查找第二大元素,包括重复值,请查找下面的示例 const arr= [1,2,5,5,6] 预期结果应为: [5,5] 我尝试了map和math.max,但我坚持了逻辑问题。请帮助我下面的代码片段可以帮助你们 const arr=[1,2,5,5,6] 常量最大值=数学最大值(…arr) 常量newArr=arr.filter(元素=>元素!==max) const newMax=Math.max(…newArr) const secondmaxist=arr.filter(e
const arr= [1,2,5,5,6]
预期结果应为:
[5,5]
我尝试了map和math.max,但我坚持了逻辑问题。请帮助我下面的代码片段可以帮助你们
const arr=[1,2,5,5,6]
常量最大值=数学最大值(…arr)
常量newArr=arr.filter(元素=>元素!==max)
const newMax=Math.max(…newArr)
const secondmaxist=arr.filter(element=>element==newMax)
log(第二大)
下面的代码片段可以帮助您
const arr=[1,2,5,5,6]
常量最大值=数学最大值(…arr)
常量newArr=arr.filter(元素=>元素!==max)
const newMax=Math.max(…newArr)
const secondmaxist=arr.filter(element=>element==newMax)
log(第二大)
这里有一个更简单的方法,但是就大数据的性能而言,它可能不是最好的方法
const ar=[1,2,5,5,6]
secmax=Math.max(…ar.filter((n,i)=>Math.max(…ar)!=n))
res=ar.filter(n=>n==secmax)
log(res)
这里有一个更简单的方法,但是就大数据的性能而言,它可能不是最好的方法
const ar=[1,2,5,5,6]
secmax=Math.max(…ar.filter((n,i)=>Math.max(…ar)!=n))
res=ar.filter(n=>n==secmax)
console.log(res)
使用集合来提取唯一值会大大缩短代码
var-arr=[1,5,2,5,4,8];
var uniqueValues=[…新集合(arr)].sort((a,b)=>b-a);
var secondHighest=唯一值[1];//0为最大值,1为次高值,以此类推。
var result=arr.filter(x=>x==secondHighest);
请记住,在访问结果时应该进行一些尽职调查(如果使用空数组或具有单个重复值的数组输入代码会发生什么情况?这里没有介绍很多情况)使用集合提取唯一值会大大缩短代码
var-arr=[1,5,2,5,4,8];
var uniqueValues=[…新集合(arr)].sort((a,b)=>b-a);
var secondHighest=唯一值[1];//0为最大值,1为次高值,以此类推。
var result=arr.filter(x=>x==secondHighest);
请记住,在访问结果时应该进行一些尽职调查(如果使用空数组或具有单个重复值的数组输入代码会发生什么情况?这里没有介绍很多情况)您可以对值进行分组,对数组进行排序,然后获得第二个数组
const
数组=[1,2,5,5,6],
结果=对象
.values(array.reduce((r,v)=>(r[v]=[…(r[v]| |[]),v],r),{}))
.sort(([a],[b])=>b-a)
[1];
控制台日志(结果)代码>您可以对值进行分组并对数组进行排序,然后获得第二个数组
const
数组=[1,2,5,5,6],
结果=对象
.values(array.reduce((r,v)=>(r[v]=[…(r[v]| |[]),v],r),{}))
.sort(([a],[b])=>b-a)
[1];
控制台日志(结果)代码>请添加您的尝试,以便我们可以修复它。请访问,查看和。做一些研究,搜索相关话题等;如果您遇到问题,请发布您的尝试,并使用[]
代码段编辑器记录输入和预期输出。如果数组为[5,5,5,5]?请添加您的尝试,以便我们可以修复它。请访问,查看和。做一些研究,搜索相关话题等;如果您遇到问题,请发布您的尝试,使用[]
代码段编辑器记录输入和预期输出。如果数组是[5,5,5,5]?但是这对数组const arr=[1,2,5,5,7,7,7,6]
有效吗?将返回[6]
哦,是的……很抱歉,它工作正常,mybad。。。。这里的问题和要求令人困惑,但这是否适用于数组常量arr=[1,2,5,5,7,7,6]
?将返回[6]
哦,是的……很抱歉,它工作正常,mybad。。。。这里的问题和要求令人困惑您应该指出,如果阵列足够大,可能会影响性能:我们也在对阵列中不感兴趣的部分进行排序。但我同意:这是一种更简单、更干净的方法。@A.Chiesa我补充道,谢谢你的支持feedback@A.Chiesa我已经修复了代码,感谢您指出,如果数组足够大,可能会影响性能:我们也在对数组中不感兴趣的部分进行排序。但我同意:这是一种更简单、更干净的方法。@A.Chiesa我补充道,谢谢你的支持feedback@A.Chiesa我已经修复了代码,谢谢你指出这一点