JSFiddle - React, Tailwind, and code Playground

JavaScript

var x = 277;
var array = [100, 200, 300, 400];
var index = array.indexOf(array.sort( (a, b) => Math.abs(x - a) - Math.abs(x - b) )[0]);
console.log(array.sort( (a, b) => Math.abs(x - a) - Math.abs(x - b) ))
document.body.innerHTML = "Index: " + index + " Value: " + array[index];
console.log(Math.abs(277-100)-Math.abs(277-200)) // 54
console.log(Math.abs(277-200)-Math.abs(277-300)) // -46
console.log(Math.abs(277-300)-Math.abs(277-400)) // -100
console.log(Math.abs(277-400)-Math.abs(277-400)) // 0

// Dette giver følgende rækkefølge: 300, 200, 400, 100
// Altså en ny sortering efter afstanden mellem værdierne
// derfor er Index altid 0, da "0" angiver den første placering/værdi i arrayet