Я хочу сделать это как ближайший (число, массив) [42] = "Sweets"; но это не работает Как я могу заставить его работать без написания слишком много, если операторы?
function closest (num, arr) {
var curr = arr[0];
var diff = Math.abs (num - curr);
for (var val = 0; val < arr.length; val++) {
var newdiff = Math.abs (num - arr[val]);
if (newdiff < diff) {
diff = newdiff;
curr = arr[val];
}
}
return curr;
}
array = [42, 82, 122, 162, 202];
number = 33;
if (closest (number, array) == 42) {
var z = "Sweets";}
if (closest (number, array) == 82) {
var z = "Chicken";}
if (closest (number, array) == 122) {
var z = "Beef";}
if (closest (number, array) == 162) {
var z = "Pizza";}
if (closest (number, array) == 202) {
var z = "Apple";}
alert (z);