Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как найти большее и меньшее число от текущего в массиве? (https://javascript.ru/forum/misc/81058-kak-najjti-bolshee-i-menshee-chislo-ot-tekushhego-v-massive.html)

Alexandroppolus 22.09.2020 19:25

если массив отсортирован, можно вообще бинарным поиском

Лоэнрон 25.09.2020 01:00

function getNum(arr, a){
	arr.sort();
	for(let i = 0; i < arr.length; i++){
		if(arr[i] > a){
			if(i == 0) return `${arr[i]}`;
			if( (arr[i] - a) > (arr[i-1] - a) ){
				return `${arr[i-1]},${arr[i]}`;
			} else {
				return `${arr[i-1]},${arr[i-2]}`;
			}
		} else if (i == arr.length - 1){
			return `${arr[i]}`;
		}
	}
}

let arr = [99,56,87,78,66,55];

console.log(getNum(arr, 88)); // 87,99
console.log(getNum(arr, 100)); // 99
console.log(getNum(arr, 10)); // 55

рони 25.09.2020 09:46

Лоэнрон,
строка 2.
Цитата:

Порядок cортировки по умолчанию соответствует порядку кодовых точек Unicode.
для сортировки чисел необходимо указать функцию сортировки.
arr.sort((a,b) => a - b);

атрибут run сделает ваш код запускаемым
например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.


Часовой пояс GMT +3, время: 05:27.