Есть код который выводит сумму чисел в массиве, без наибольшего и наименьшего значения. Не могу проверит входное значение на 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 ]));
@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([]));
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости