[如何获得比数组javascript其他元素大的3个值] [

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[如何获得比数组javascript其他元素大的3个值] [相关的知识,希望对你有一定的参考价值。

array = [
 
  name: 'name1',
  value: 0
 ,
 
  name: 'name2',
  value: 2
 ,
 
  name: 'name3',
  value: 4
 ,
 
  name: 'name4',
  value: 4
 ,
 
  name: 'name5',
  value: 3
 ,
 
  name: 'name6',
  value: 2
 ,
 
  name: 'name7',
  value: 0
 ,
 
  name: 'name8',
  value: 1
 ,
 ...
]

如何获得具有最高价值的物品?在上面的示例中,我应该重新设置具有value = 4value = 3value = 2(即前三个最大值)的对象我已经尝试过这样的事情:

let first: 0
let second: 0
let third: 0
array.map((res: any) => 
    if (res.value > first) 
    third = second
    second = first
    first = res
 else if (res.value > second) 
    third = second
    second = res

 else if (res.value > third) 
    third = res

)

问题是,如果有两个或多个具有相同值的对象,则不会同时返回两个对象,而只会返回一个。

我有一个由对象组成的数组。每个对象都有两个属性:名称,值。数组= [名称:'name1',值:0,名称:'name2',值:2,名称:'name3',值:4,...

答案
这里是您的详细操作方式。
另一答案
首先,您需要对数组进行排序,可以使用默认的sort方法,为什么我们使用spread语法获取副本是因为我们基本上不希望更改现有数组。

以上是关于[如何获得比数组javascript其他元素大的3个值] [的主要内容,如果未能解决你的问题,请参考以下文章

找出数组中每个数右边第一个比它大的元素

找出数组中每个数右边第一个比它大的元素

找出数组中每个数右边第一个比它大的元素--时间复杂度o(n)单调栈解法

我如何在Javascript中拥有可变长度数组的前3个元素[重复]

如何获取 javascript/jQuery 中最高子元素的高度?

字典序排序-求全排列(元素有重复)