--- id: 587d7b7d367417b2b2512b1f title: Modify an Array Stored in an Object challengeType: 1 videoUrl: '' localeTitle: 修改存储在对象中的数组 --- ## Description
现在您已经看到了JavaScript对象的所有基本操作。您可以添加,修改和删除键值对,检查键是否存在,并迭代对象中的所有键。随着您继续学习JavaScript,您将看到更多功能的对象应用程序。此外,课程后面的可选高级数据结构课程还涵盖ES6 MapSet对象,这两个对象与普通对象类似,但提供了一些附加功能。既然您已经学习了数组和对象的基础知识,那么您已经准备好开始使用JavaScript解决更复杂的问题了!
## Instructions
看看我们在代码编辑器中提供的对象。 user对象包含三个键。 data键包含五个键,其中一个键包含一组friends 。从这里,您可以看到灵活的对象如何作为数据结构。我们已经开始编写一个函数addFriend 。完成编写它以便它获取user对象并将friend参数的名称添加到存储在user.data.friends中的数组并返回该数组。
## Tests
```yml tests: - text: user对象具有nameagedata键 testString: 'assert("name" in user && "age" in user && "data" in user, "The user object has name, age, and data keys");' - text: addFriend函数接受user对象和friend字符串作为参数,并将朋友添加到user对象中的friends数组 testString: 'assert((function() { let L1 = user.data.friends.length; addFriend(user, "Sean"); let L2 = user.data.friends.length; return (L2 === L1 + 1); })(), "The addFriend function accepts a user object and a friend string as arguments and adds the friend to the array of friends in the user object");' - text: 'addFriend(user, "Pete")应该返回["Sam", "Kira", "Tomo", "Pete"]' testString: 'assert.deepEqual((function() { delete user.data.friends; user.data.friends = ["Sam", "Kira", "Tomo"]; return addFriend(user, "Pete") })(), ["Sam", "Kira", "Tomo", "Pete"], "addFriend(user, "Pete") should return ["Sam", "Kira", "Tomo", "Pete"]");' ```
## Challenge Seed
```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) { // change code below this line // change code above this line } console.log(addFriend(user, 'Pete')); ```
## Solution
```js // solution required ```