Files

3.9 KiB
Raw Permalink Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b7d367417b2b2512b1f Змінити масив, збережений в об'єкті 1 301163 modify-an-array-stored-in-an-object

--description--

Тепер вам відомо про всі основні операції стосовно об'єктів JavaScript. Ви можете додавати, змінювати та видаляти пари ключів і значень, перевіряти, чи існують ключі, і ітерувати усі ключі в об'єкті. Продовжуючи вивчення JavaScript ви познайомитесь з ще більш універсальними програми об'єктів. Крім того, уроки про структури даних, що належать до розділу «Coding Interview Prep» навчальної програми, також містять інформацію про ES6 Map та Set об'єкти, які є схожими на звичайні об'єкти, але забезпечують певні додаткові функції. Тепер, коли ви з'ясували, що таке масиви та об'єкти, ви цілком готові до вирішення складніших проблем з допомогою JavaScript!

--instructions--

Зверніть увагу на об’єкт, який подано в редакторі коду. Об'єкт user містить три ключі. Ключ data містить п'ять ключів, один з яких містить масив friends. З цього можна зрозуміти, наскільки гнучкими є об'єкти як структури даних. Ми почали писати функцію addFriend. Завершіть її для того, щоб вона прийняла об'єкт user і додала назву аргументу friend до масиву, збереженого в user.data.friends і повернула цей масив.

--hints--

Об'єкт user повинен мати наступні ключі: name, age та data.

assert('name' in user && 'age' in user && 'data' in user);

Функція addFriend повинна прийняти об’єкт user і рядок friend у ролі аргументів, а також додати ще один до масиву friends в об'єкті user.

assert(
  (function () {
    let L1 = user.data.friends.length;
    addFriend(user, 'Sean');
    let L2 = user.data.friends.length;
    return L2 === L1 + 1;
  })()
);

addFriend(user, "Pete") повинен повернути ["Sam", "Kira", "Tomo", "Pete"].

assert.deepEqual(
  (function () {
    delete user.data.friends;
    user.data.friends = ['Sam', 'Kira', 'Tomo'];
    return addFriend(user, 'Pete');
  })(),
  ['Sam', 'Kira', 'Tomo', 'Pete']
);

--seed--

--seed-contents--

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--

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