2016-09-09 1 views
0

Я хочу Math.min несколько Дата значения (например, var1.getTime(), var2.getTime() и var3.getTime()) , Однако, прежде чем я смогу использовать .getTime() на них, мне нужно убедиться, что они существуют (поэтому сценарий не сбой).Условный оператор внутри Math.min или Math.max в JavaScript

Если одна из переменных не существует, я все равно хочу получить Math.min других переменных, которые существуют.

Любые подсказки?

+1

Возможный дубликат [Как я могу найти наибольшее число, содержащееся в массиве JavaScript?] (Http://stackoverflow.com/questions/1379553/how-might-i-find-the-largest-number-contained-in- a-javascript-array) –

+0

Поместите ваши значения даты в массив, затем следуйте^question. –

+0

Какое поведение, если ни одно из них не существует? –

ответ

2

Если вы храните ваши переменные даты в массиве, вы можете использовать filter для удаления Непро- Date объектов и передать в Math.min.apply или Math.max.apply

const dates = [var1, var2, var3]; 
const min = Math.min(...dates.filter(date => date instanceof Date)); 

или не представившей ECMAScript   6:

var dates = [var1, var2, var3]; 
var min = Math.min.apply(null, dates.filter(function(date) { 
    return date instanceof Date; 
})); 
+0

Почему '.apply (null, ...)' когда у вас уже есть массив? –

+0

Хорошая точка @ScottSauyet, обновленная. Благодаря! –

+0

Да, но вам все равно нужно .getTime() их, прежде чем вы сможете Math.min их? Как ты это делаешь? – Emilio