* Дан массив. Необходимо отсортировать нечетные по значению числа по возрастанию,

javascript export function oddSort(numbers) { // Извлекаем нечетные числа const oddNumbers = numbers.filter(n => n % 2 !

Короткий ответ

Что ответить на собеседовании

javascript export function oddSort(numbers) { // Извлекаем нечетные числа const oddNumbers = numbers.filter(n => n % 2 !== 0).sort((a, b) => a - b); let oddIndex = 0; // Формируем новый массив, заменяя нечетные числа отсортированными return numbers.map(n => { if (n % 2 !== 0) { return oddNumbers[oddIndex++]; } return n; }); }

Подробный разбор

Ответ с пояснениями

Условие

/ **

  • Дан массив. Необходимо отсортировать нечетные по значению числа по возрастанию,
  • а четные оставить на своих местах
  • / export function oddSort(numbers) { // your code here }

console.log(oddSort([2, 3, 7, 4, 6, 1, 5, 8, 9])); // [2, 1, 3, 4, 6, 5, 7, 8, 9] console.log(oddSort([2, 4, 6, 8])); // [2, 4, 6, 8] console.log(oddSort([3, 7, 1, 5, 9])); // [1, 3, 5, 7, 9]

// Необходимо проверить решение задачи по двум сервисам, вызвав: // 1. checkResult(url1, solution) // 2. checkResult(url2, solution) // // checkResult: (url: string, solution: string | number) => Promise; // // - Если оба запроса вернули true - вывести в console.log() success // - Если хоть один вернул false - вывести в console.log() fail // - Если хоть один не ответил - вывести в console.log() error // - Если хоть один отвечает дольше 1 сек - вывести в console.log() timeout

import { checkResult } from '...';

export async function checkResults() { const solution = 'Any answer'; const url1 = 'yandex.ru'; const url2 = 'google.com';

checkResult(url1, solution); checkResult(url2, solution); }

Ответ

javascript export function oddSort(numbers) { // Извлекаем нечетные числа const oddNumbers = numbers.filter(n => n % 2 !== 0).sort((a, b) => a - b); let oddIndex = 0; // Формируем новый массив, заменяя нечетные числа отсортированными return numbers.map(n => { if (n % 2 !== 0) { return oddNumbers[oddIndex++]; } return n; }); }

// Асинхронная функция для проверки результатов import { checkResult } from '...';

export async function checkResults() { const solution = 'Any answer'; const url1 = 'yandex.ru'; const url2 = 'google.com';

// Запускаем оба запроса с таймаутом function withTimeout(promise, ms) { return Promise.race([ promise, new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), ms)) ]); }

try { const [res1, res2] = await Promise.all([ withTimeout(checkResult(url1, solution), 1000), withTimeout(checkResult(url2, solution), 1000) ]);

if (res1 === true && res2 === true) {
  console.log('success');
} else if (res1 === false || res2 === false) {
  console.log('fail');
} else {
  console.log('error');
}

} catch (e) { if (e.message === 'timeout') { console.log('timeout'); } else { console.log('error'); } } }

// Пример вызова console.log(oddSort([2, 3, 7, 4, 6, 1, 5, 8, 9])); // [2, 1, 3, 4, 6, 5, 7, 8, 9]

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее