Code is wrong ? why :)?

Tell us what’s happening:
I can’t see the problem with the code in sample bellow. It should return artist: “ABBA” and it is returning { album: ‘ABBA Gold’, artist: ‘ABBA’ }.
So why I can’t get this to work ?
Any help ?

Your code so far


// 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"
 }
};

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

if (prop=="tracks" && collection.hasOwnProperty(prop) ){collection[id][prop]=[];
}

if (prop=="tracks" && value!="" ){
 collection[id][prop].push(value);
 
 }

if (value ==""){
  delete collection[id][prop]; }

if (prop!="tracks" && value!=""){
 collection[id][prop]=value;}

 return collection[id];
}

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

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36.

Challenge: Record Collection

Link to the challenge:

 return collection[id];

I believe you are supposed to return the entire collection.


if (prop=="tracks" && collection.hasOwnProperty(prop) ){collection[id][prop]=[];
}

Can you explain the purpose of collection.hasOwnProperty(prop) for me?

Hi there,

Those are the tasks:

Write a function which takes an album’s id (like 2548 ), a property prop (like "artist" or "tracks" ), and a value (like "Addicted to Love" ) to modify the data in this collection.

If prop isn’t "tracks" and value isn’t empty ( "" ), update or set the value for that record album’s property.

Your function must always return the entire collection object.

There are several rules for handling incomplete data:

If prop is "tracks" but the album doesn’t have a "tracks" property, create an empty array before adding the new value to the album’s corresponding property.

If prop is "tracks" and value isn’t empty ( "" ), push the value onto the end of the album’s existing tracks array.

If value is empty ( "" ), delete the given prop property from the album.

Fix. But I still not understanding the results.

what part excatly of it don’t u understand?