Здесь новый разработчик React!
Я пытаюсь проверить, есть ли в датах моего массива определенные символы, например. "2019" или "-11-". Мне нужно посмотреть, нет ли в массиве [i] даты, чтобы добавить введенную дату в этот слот. Я мог бы использовать !== undefined или isNaN, но по какой-то причине выдается число или empty как ошибка...
Я пробовал много разных подходов, но мне кажется, что это может быть выходом. Если кто-то другой не найдет лучшего решения: D
Спасибо за ваше время ^_^ Надеюсь, это простое решение, которое я просто не заметил!
/*
date = user-inputted date (XXXX-XX-XX)
dateData = {name, dates} in database ("name", "XXXX-XX-XX")
newOrder[] = dateData.dates, but rearranged to a correct order, no date
in the spot where "date" should be added
*/
let newOrder = [dateData.length + 1];
for (let i = 0; i < newOrder.length; i++) {
if (newOrder[i] /*solution here*/) {
newOrder[i] = moment(date).format("YYYY-MM-DD");
break;
}
}
// after this I'll update the database with async





С момента вы можете получить день, месяц и год.
var check = moment('2014-07-28', 'YYYY/MM/DD');
var month = check.format('M');
var day = check.format('D');
var year = check.format('YYYY');
console.info(month, day, year);
Вы можете попробовать этот код.
"3-12-2019".indexOf('2019')
или
"3-12-2019".startsWith('2019') || "3-12-2019".endsWith('2019')
Учитывая это: dateData.dates — это Множество, где находятся ваши даты.
// Loops through the dates in the Array[]
dateData.dates.forEach(date => {
// Checks whether the date exists
// !date: if date = '' or null or any other falsy values will return true
if (!date){
date = moment(date).format("YYYY-MM-DD");
}
});
При использовании момента вы можете использовать метод moment#isValid, чтобы проверить, является ли текущее значение допустимой датой.
Хотя мне не совсем понятно, чего вы пытаетесь достичь. Возможно, вы можете обновить свой пример некоторыми данными.
let newOrder = [dateData.length + 1];
for (let i = 0; i < newOrder.length; i++) {
const parsedDate = moment(date);
if (newOrder[i] && parsedDate.isValid()) {
newOrder[i] = parsedDate.format("YYYY-MM-DD");
break;
}
}
Благодарю вас! Мне удалось найти решение, используя это, Фрэнка
startsWithи используяtry/catch..: D Но, наконец, это заработало!