Data Structure For Quizzes

 avatar
unknown
javascript
a year ago
1.6 kB
8
Indexable
let users = []
let quizzes = {}

function addUsers(name, age) {
    if (!name) {
        return {error: "Name cannot be empty"};
    }
    if (age < 0) {
        return {error: "Provide a valid age"};
    }
    users.push({
        userId : users.length + 1,
        age: age,
        name: name
    });
}

function addQuiz(userId, title, description) {
    if (!title) {
        return {error: "Provide a valid title"};
    }
    if (!description) {
        return {error: "Provide a valid description"};
    }

    let uIndex = users.findIndex(user => user.userId == userId)
    if (uIndex === -1 ) {
        return {error: "User is not a valid user"};
    }

    if (!quizzes[userId]) {
        quizzes[userId] = []
    }
    quizzes[userId].push({
        id: quizzes[userId].length + 1,
        title: title,
        description: description
    })
}

function searchQuiz(userId, searchWord) {
    if (!searchWord) {
        return {error: "Provide a valid searchWord"};
    }

    let uIndex = users.findIndex(user => user.userId == userId)
    if (uIndex === -1 ) {
        return {error: "User is not a valid user"};
    }
    let qs = quizzes[userId]
    let filteredEntries = qs.filter(entry => {
        return entry.title.toLowerCase().includes(searchWord.toLowerCase()) ||
               entry.description.toLowerCase().includes(searchWord.toLowerCase());
    });
    
    return filteredEntries
}

addUsers("Rabbi", 2)
addQuiz(1, "Math", "For class 1")

addUsers("Momota", 2)
addQuiz(2, "Math", "For class 1")
addQuiz(2, "Eng", "For class 2")
console.log(searchQuiz(2, "1"))
Editor is loading...
Leave a Comment