spences10
11/17/2016 - 7:45 AM

Record Collection created by spences10 - https://repl.it/E0hi/0

Record Collection created by spences10 - https://repl.it/E0hi/0

// Setup
var collection = {
    "2548": {
        "album": "Slippery When Wet",
        "artist": "Bon Jovi",
        "tracks": [
            "Let It Rock",
            "You Give Love a Bad Name"
        ]
    },
    "2468": {
        "album": "1999",
        "artist": "Prince",
        "tracks": [
            "1999",
            "Little Red Corvette"
        ]
    },
    "1245": {
        "artist": "Robert Palmer",
        "tracks": []
    },
    "5439": {
        "album": "ABBA Gold"
    }
};
// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));

// Only change code below this line
function updateRecords(id, prop, value) {

    if (prop !== "tracks" && value !== "") {
        collection[id][prop] = value;
    } else if (prop === "tracks" && value !== "") {
        if (!collection[id].hasOwnProperty(prop)) {
            collection[id][prop] = []; //Create a property with empty array
            collection[id][prop].push(value); //Append a value into the array 
        } else {
            collection[id][prop].push(value); //Append a value into the exist property array
        }
    } else if (value === "") {
        delete collection[id][prop];
    }
    return collection;
}

// Alter values below to test your code

console.log(updateRecords(5439, "artist", "ABBA"));

// console.log(collection);

// tests
// After updateRecords(5439, "artist", "ABBA"), artist should be "ABBA"
// After updateRecords(5439, "tracks", "Take a Chance on Me"), tracks should have "Take a Chance on Me" as the last element.
// After updateRecords(2548, "artist", ""), artist should not be set
// After updateRecords(1245, "tracks", "Addicted to Love"), tracks should have "Addicted to Love" as the last element.
// After updateRecords(2468, "tracks", "Free"), tracks should have "1999" as the first element.
// After updateRecords(2548, "tracks", ""), tracks should not be set