--- id: 587d7b7d367417b2b2512b1f title: Modify an Array Stored in an Object challengeType: 1 forumTopicId: 301163 --- # --description-- Now you've seen all the basic operations for JavaScript objects. You can add, modify, and remove key-value pairs, check if keys exist, and iterate over all the keys in an object. As you continue learning JavaScript you will see even more versatile applications of objects. Additionally, the Data Structures lessons located in the Coding Interview Prep section of the curriculum also cover the ES6 Map and Set objects, both of which are similar to ordinary objects but provide some additional features. Now that you've learned the basics of arrays and objects, you're fully prepared to begin tackling more complex problems using JavaScript! # --instructions-- Take a look at the object we've provided in the code editor. The `user` object contains three keys. The `data` key contains five keys, one of which contains an array of `friends`. From this, you can see how flexible objects are as data structures. We've started writing a function `addFriend`. Finish writing it so that it takes a `user` object and adds the name of the `friend` argument to the array stored in `user.data.friends` and returns that array. # --hints-- The `user` object should have `name`, `age`, and `data` keys. ```js assert('name' in user && 'age' in user && 'data' in user); ``` The `addFriend` function should accept a `user` object and a `friend` string as arguments and add the friend to the array of `friends` in the `user` object. ```js assert( (function () { let L1 = user.data.friends.length; addFriend(user, 'Sean'); let L2 = user.data.friends.length; return L2 === L1 + 1; })() ); ``` `addFriend(user, "Pete")` should return `["Sam", "Kira", "Tomo", "Pete"]`. ```js assert.deepEqual( (function () { delete user.data.friends; user.data.friends = ['Sam', 'Kira', 'Tomo']; return addFriend(user, 'Pete'); })(), ['Sam', 'Kira', 'Tomo', 'Pete'] ); ``` # --seed-- ## --seed-contents-- ```js let user = { name: 'Kenneth', age: 28, data: { username: 'kennethCodesAllDay', joinDate: 'March 26, 2016', organization: 'freeCodeCamp', friends: [ 'Sam', 'Kira', 'Tomo' ], location: { city: 'San Francisco', state: 'CA', country: 'USA' } } }; function addFriend(userObj, friend) { // Only change code below this line // Only change code above this line } console.log(addFriend(user, 'Pete')); ``` # --solutions-- ```js let user = { name: 'Kenneth', age: 28, data: { username: 'kennethCodesAllDay', joinDate: 'March 26, 2016', organization: 'freeCodeCamp', friends: [ 'Sam', 'Kira', 'Tomo' ], location: { city: 'San Francisco', state: 'CA', country: 'USA' } } }; function addFriend(userObj, friend) { userObj.data.friends.push(friend); return userObj.data.friends; } ```