Możesz zmapować tablicę liczb na tablicę obiektów z propertisami diff i num, gdzie diff to będzie różnica między Twoją liczbą a liczbą z tablicy (przyda się wyciągnąć z tego wartość absolutną), a num to dana liczba z tablicy. Następnie posortuj rosnąco wynikową tablicę obiektów i pierwszy jej element, to będzie obiekt, którego property num będzie miało wartość najbliższą Twojej liczbie.
Przykład:
function getClosestNumberFromArray(array, numberToMatch) {
const calculatedArray = array
.map(num => ({diff: Math.abs(numberToMatch - num), num }))
.sort((a,b) => a.diff - b.diff);
const closestNum = calculatedArray[0].num;
return closestNum
}
getClosestNumberFromArray([2,3,4,5,1,7,4,33,2], 9) // 7
getClosestNumberFromArray([2,3,4,5,1,7,4,33,2], 25) // 33
getClosestNumberFromArray([2,3,4,5,1,7,4,33,2], 19) // 7