кодесурса
«JavaScript

JavaScript: получить n-й по величине элемент из несортированного массива

script1adsense2code
script1adsense3code

Массив JavaScript: упражнение 34 с решением

Напишите функцию JavaScript, чтобы получить n-й по величине элемент из несортированного массива.

Тестовые данные:
console.log (nthlargest ([43, 56, 23, 89, 88, 90, 99, 652], 4));
89

Иллюстрированная презентация:

«JavaScript:

Пример решения:


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript function to get nth largest element from an unsorted array.</title>
</head>
<body>
</body>
</html>

Код JavaScript:


function nthlargest(arra,highest){
			var x = 0,
				y = 0,
				z = 0,
				temp = 0,
				tnum = arra.length, 
				flag = false, 
				result = false; 
   
			while(x < tnum){
				y = x + 1; 
				
				if(y < tnum){
					for(z = y; z < tnum; z++){
						
						if(arra[x] < arra[z]){
							temp = arra[z];
							arra[z] = arra[x];
							arra[x] = temp;
							flag = true; 
						}else{
							continue;
						}	
					}					
				}
				
				if(flag){
					flag = false;
				}else{
					x++; 
					if(x === highest){ 
                      
						result = true;
					}	
				}
				if(result){
					break;
				}
			}
			return (arra[(highest - 1)]);	
		}
		
console.log(nthlargest([ 43, 56, 23, 89, 88, 90, 99, 652], 4)); 

Пример вывода:

 89

Блок - схема:

«Блок-схема:

Версия ES6:

function nthlargest(arra,highest){
    let x = 0;
    let y = 0;
    let z = 0;
    let temp = 0;
    const tnum = arra.length;
    let flag = false;
    let result = false;
    while(x < tnum){
        y = x + 1; 
        
        if(y < tnum){
            for(z = y; z < tnum; z++){
                
                if(arra[x] < arra[z]){
                    temp = arra[z];
                    arra[z] = arra[x];
                    arra[x] = temp;
                    flag = true; 
                }else{
                    continue;
                }	
            }					
        }
        
        if(flag){
            flag = false;
        }else{
            x++; 
            if(x === highest){ 
              
                result = true;
            }	
        }
        if(result){
            break;
        }
    }
    return (arra[(highest - 1)]);
}
		
console.log(nthlargest([ 43, 56, 23, 89, 88, 90, 99, 652], 4));

Демонстрация в реальном времени:

См. Pen JavaScript - Получите n-й по величине элемент из несортированного массива - array-ex- 34 от w3resource ( @ w3resource ) в CodePen .


Улучшите этот пример решения и опубликуйте свой код через Disqus

Previous: написать скрипт JavaScript для очистки массива с сохранением оригинала.
Далее: написать функцию JavaScript для получения случайного элемента из массива.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code