Как проверить такой массив объектов ? Vue.js, Vuelidate
Задача такова:
Вернуть true, если хотя бы у одного объекта day_off: false, и у каждого объекта с day_off: false - work_time.from и work_time.to не должны ровняться 00:00 или --:--.
Я использую в проекте vue.js с vuelidate.js, там можно писать кастомные методы валидации, но не хватает знаний, чтобы написать логику. На данный момент готова только:
Вернуть
true, если хотя бы у одного объектаday_off: false
Сделал так:
const dayValid = (value, vm) => vm.some(el => !el.day_off)
Буду признателен знатокам или гуру логики JS!
Сам массив:
schedule: [
{
title: "Понедельник",
work_time: { from: "00:00", to: "00:00" },
break_time: { from: "00:00", to: "00:00" },
day_off: false
},
{
title: "Вторник",
work_time: { from: "00:00", to: "00:00" },
break_time: { from: "00:00", to: "00:00" },
day_off: false
},
{
title: "Среда",
work_time: { from: "00:00", to: "00:00" },
break_time: { from: "00:00", to: "00:00" },
day_off: false
},
{
title: "Четверг",
work_time: { from: "00:00", to: "00:00" },
break_time: { from: "00:00", to: "00:00" },
day_off: false
},
{
title: "Пятница",
work_time: { from: "00:00", to: "00:00" },
break_time: { from: "00:00", to: "00:00" },
day_off: false
},
{
title: "Суббота",
work_time: { from: "00:00", to: "00:00" },
break_time: { from: "00:00", to: "00:00" },
day_off: false
},
{
title: "Воскресенье",
work_time: { from: "00:00", to: "00:00" },
break_time: { from: "00:00", to: "00:00" },
day_off: false
}
]
Ответы (1 шт):
Автор решения: Anton Bogomolov
→ Ссылка
Можно прогнать массив через цикл:
checkOffDay: function (array) {
for (let i = 0; i < array.length; ++i) {
if (!array[i].day_off) {
return true;
break;
}
}
},