Как проверить на undefined?

328
26 ноября 2016, 18:00

Есть код который выводит сумму чисел в массиве, без наибольшего и наименьшего значения. Не могу проверит входное значение на undefined.

Пробовал проверять таким способом:

if (typeof something === "undefined") {
    alert("something is undefined");
}

Но тесты не прохожу, мне нужно если undefined то выводить просто 0.

function getMaxOfArray(numArray) { 
  return Math.max.apply(null, numArray); 
} 
 
function getMinOfArray(numArray) { 
  return Math.min.apply(null, numArray); 
} 
 
function sumArray(numbers){ 
  var maxPlusMin = getMaxOfArray(numbers) + getMinOfArray(numbers); 
  if (numbers && isNaN(numbers) & (numbers.length  != 0) ) { 
  return numbers.reduce(function(sum, n){   
    return n + sum; 
  }, -maxPlusMin ); 
  } else { 
   numbers = 0; 
  } 
} 
 
alert(sumArray([ 1, 2, 3, 4, 10 ]));

Answer 1

@Visman в комментарии указал на мой недочёт:

Ну а return numbers; поставить? Или сразу return 0;? И например сменить & на &&?

Так всё работает как нужно:

function getMaxOfArray(numArray) { 
  return Math.max.apply(null, numArray); 
} 
 
function getMinOfArray(numArray) { 
  return Math.min.apply(null, numArray); 
} 
 
function sumArray(numbers){ 
  var maxPlusMin = getMaxOfArray(numbers) + getMinOfArray(numbers); 
  if (numbers && isNaN(numbers) && (numbers.length  != 0)) { 
  return numbers.reduce(function(sum, n){   
    return n + sum; 
  }, -maxPlusMin ); 
  } else { 
   return numbers = 0; 
  } 
} 
 
alert (sumArray([ 6, 2, 1, 8, 10 ])); 
alert (sumArray([]));

READ ALSO
Как скрыть ссылку в коде?

Как скрыть ссылку в коде?

В коде html или php (не важно), требуется скрыть ссылкуСкрыть не в отображении, а прямо в коде, чтобы не смогли увидеть исходного кода

389
Неверный перевод русских букв в unicode на JavaScript

Неверный перевод русских букв в unicode на JavaScript

Требуется прочитать текст из файла и перевести его в UnicodeДелаю это посимвольно функцией charCodeAt

248
Что такое псевдо массив/объект?

Что такое псевдо массив/объект?

Например есть такой объект как arguments доступный внутри любой функции

636
Что в Javascript значит синтакс ( function(){…} )( param1, param2); ?

Что в Javascript значит синтакс ( function(){…} )( param1, param2); ?

Столкнулся в этом примере с синтаксисом, который раньше не встречал:

320