Реализуйте функцию find (nums), чтобы вернуть нижний индекс третьего по величине значения в nums и вернуть -1, если их меньше 3

Сегодняшний вопрос: реализуйте функцию find (nums) для возврата индекса третьего по величине значения в nums. Если число меньше трех, верните -1, чтобы
использовать относительно простой метод дедупликации.

Возникает проблема: если третье по величине число - это несколько повторяющихся чисел, то каков индекс третьего по величине числа? Здесь нет решения. Я надеюсь, что кто-то предоставит хороший метод.

const find = nums => {
    
    
  if (nums.length < 3) {
    
    
    return -1
  }
  //利用ES6特性进行数组去重
  const newNums = [...new Set (nums)]
 
  for (let i = 0; i<newNums.length-1; i++) {
    
    
    for (let j = 0; j<newNums.length-1-i;j++) {
    
    
      //判断前一个大于后一个数时进行交换
      if (newNums[j] > newNums[j + 1]) {
    
    
        let temp = newNums[j]
        newNums[j] = newNums[j + 1]
        newNums[j + 1] = temp
      }
    }
  }
  return nums.indexOf(newNums[2])
}
console.log (find([3,10,8,9,9,10,10,18,8]))

рекомендация

отblog.csdn.net/pz1021/article/details/105387328