15.07.2017, 19:45
|
Аспирант
|
|
Регистрация: 09.07.2017
Сообщений: 49
|
|
Массив объектов
задачка:
Изучите перебирающие методы массивов: forEach, filter, map. Создайте массив объектов users (~10 объектов), каждый объект имеет поля firstname, lastname, age с разными значениями. Используя встроенные функции массивов:
-Отфильтруйте пользователей младше 18 лет
-Добавьте каждому объекту поле fullName, которое является конкатенацией имени и фамилии
-Сформируйте новый массив, который содержит только полное имя пользователей.
Массив обьектов создала,а дальше не получается((
Как работают forEach, filter, map на простых задачах понятно,а как их применить к более сложной не понятно(
|
|
15.07.2017, 20:18
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,102
|
|
Сообщение от Tanya51
|
а дальше не получается
|
где код?
|
|
15.07.2017, 20:25
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,671
|
|
Tanya51,
Могу подсказать где какой метод использовать:
-Отфильтруйте... filter
-Добавьте... forEach
-Сформируйте... map
|
|
15.07.2017, 21:28
|
Аспирант
|
|
Регистрация: 09.07.2017
Сообщений: 49
|
|
Сообщение от Rise
|
Tanya51,
Могу подсказать где какой метод использовать:
-Отфильтруйте... filter
-Добавьте... forEach
-Сформируйте... map
|
это я поняла)
|
|
15.07.2017, 21:28
|
Аспирант
|
|
Регистрация: 09.07.2017
Сообщений: 49
|
|
Сообщение от рони
|
где код?
|
уже немного разобралась)
Напишу,если возникнут вопросы. Спасибо)
|
|
15.07.2017, 22:08
|
Аспирант
|
|
Регистрация: 09.07.2017
Сообщений: 49
|
|
var users=[
{
firstname: 'Tanya',
lastname: 'Sashyna',
age: 25,
},
{
firstname: 'Lena',
lastname: 'Velichko',
age: 27,
},
{
firstname: 'Nastya',
lastname: 'Sash',
age: 5,
}
}
users.forEach(function(item, i, users) {
return users.push(Array['fullName']=Array.firstname+Array.lastname);
});
Мне нужно добавить в обьекты,которые находятся в массиве users свойство fullName со значением (конкатенацией) firstname+lastname.
В коде выше он мне добавляет NaN в массив.
Подскажите как правильно сделать
Последний раз редактировалось Tanya51, 15.07.2017 в 22:10.
|
|
15.07.2017, 22:14
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,102
|
|
Tanya51,
var users=[
{
firstname: 'Tanya',
lastname: 'Sashyna',
age: 25
},
{
firstname: 'Lena',
lastname: 'Velichko',
age: 27
},
{
firstname: 'Nastya',
lastname: 'Sash',
age: 5
}
]
users.forEach(function(item, i, users) {
item.fullName = item.firstname+" "+item.lastname;
});
console.log(users)
|
|
15.07.2017, 22:18
|
Аспирант
|
|
Регистрация: 09.07.2017
Сообщений: 49
|
|
спасибо)
|
|
15.07.2017, 22:35
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,671
|
|
Tanya51,
Надо называть вещи своими именами тогда станет понятно что есть что:
users.forEach(function(user, index, users) {
user.fullName = user.firstname+" "+user.lastname;
});
|
|
16.07.2017, 11:13
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
function getter() {
return this.firstname + ' ' + this.lastname;
}
users.forEach(function(user) {
Object.defineProperty(user, 'fullname', {
get: getter
});
});
|
|
|
|