-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
83 lines (69 loc) · 2.81 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
const todoList = () => {
all = []
const add = (todoItem) => {
all.push(todoItem)
}
const markAsComplete = (index) => {
all[index].completed = true
};
const overdue = () => {
// Write the date check condition here and return the array of overdue items accordingly.
// FILL YOUR CODE HERE
return all.filter((todos) => today > todos.dueDate);
};
const dueToday = () => {
// Write the date check condition here and return the array of todo items that are due today accordingly.
// FILL YOUR CODE HERE
return all.filter((todos) => today == todos.dueDate);
};
const dueLater = () => {
// Write the date check condition here and return the array of todo items that are due later accordingly.
// FILL YOUR CODE HERE
return all.filter((todos) => today < todos.dueDate);
};
const toDisplayableList = (list) => {
// Format the To-Do list here, and return the output string as per the format given above.
// FILL YOUR CODE HERE
return list.map((todos) => {
const complete=todos.completed ? 'x' : ' ';
return `[${complete}] ${todos.title} ${todos.dueDate == today ? ' ' : todos.dueDate}`
}).join("\n");
}
return { all, add, markAsComplete, overdue, dueToday, dueLater, toDisplayableList };
}
// ####################################### #
// DO NOT CHANGE ANYTHING BELOW THIS LINE. #
// ####################################### #
const todos = todoList();
const formattedDate = d => {
return d.toISOString().split("T")[0]
}
var dateToday = new Date()
const today = formattedDate(dateToday)
const yesterday = formattedDate(
new Date(new Date().setDate(dateToday.getDate() - 1))
)
const tomorrow = formattedDate(
new Date(new Date().setDate(dateToday.getDate() + 1))
)
todos.add({ title: 'Submit assignment', dueDate: yesterday, completed: false })
todos.add({ title: 'Pay rent', dueDate: today, completed: true })
todos.add({ title: 'Service Vehicle', dueDate: today, completed: false })
todos.add({ title: 'File taxes', dueDate: tomorrow, completed: false })
todos.add({ title: 'Pay electric bill', dueDate: tomorrow, completed: false })
console.log("My Todo-list\n\n")
console.log("Overdue")
var overdues = todos.overdue()
var formattedOverdues = todos.toDisplayableList(overdues)
console.log(formattedOverdues)
console.log("\n\n")
console.log("Due Today")
let itemsDueToday = todos.dueToday()
let formattedItemsDueToday = todos.toDisplayableList(itemsDueToday)
console.log(formattedItemsDueToday)
console.log("\n\n")
console.log("Due Later")
let itemsDueLater = todos.dueLater()
let formattedItemsDueLater = todos.toDisplayableList(itemsDueLater)
console.log(formattedItemsDueLater)
console.log("\n\n")