Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
10 / 10 / 1
Регистрация: 20.08.2016
Сообщений: 245

Трансформировать в объекты

07.10.2025, 14:39. Показов 807. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У вас есть массив объектов user, и у каждого из объектов есть name, surname и id.

Напишите код, который создаст ещё один массив объектов с параметрами id и fullName, где fullName – состоит из name и surname.

Например:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let vasya = { name: "Вася", surname: "Пупкин", id: 1 };
let petya = { name: "Петя", surname: "Иванов", id: 2 };
let masha = { name: "Маша", surname: "Петрова", id: 3 };
 
let users = [ vasya, petya, masha ];
 
let usersMapped = /* ... ваш код ... */
 
/*
usersMapped = [
  { fullName: "Вася Пупкин", id: 1 },
  { fullName: "Петя Иванов", id: 2 },
  { fullName: "Маша Петрова", id: 3 }
]
*/
 
alert( usersMapped[0].id ) // 1
alert( usersMapped[0].fullName ) // Вася Пупкин

Итак, на самом деле вам нужно трансформировать один массив объектов в другой. Попробуйте использовать =>. Это небольшая уловка.


Я написал код, и он, вроде, работает, но в решении пишут немного по-другому, и написано, что мой код неправильный. Посмотрите, пожалуйста, можно ли так написать, как я?

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
let vasya = { name: "Вася", surname: "Пупкин", id: 1 };
let petya = { name: "Петя", surname: "Иванов", id: 2 };
let masha = { name: "Маша", surname: "Петрова", id: 3 };
 
let users = [ vasya, petya, masha ];
 
let usersMapped = users.map(item => {
    item.name + item.surname,
    item.id
});
 
usersMapped = [
  { fullName: "Вася Пупкин", id: 1 },
  { fullName: "Петя Иванов", id: 2 },
  { fullName: "Маша Петрова", id: 3 }
]
 
 
alert( usersMapped[0].id ) // 1
alert( usersMapped[0].fullName ) // Вася Пупкин
Правильное решение.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
let vasya = { name: "Вася", surname: "Пупкин", id: 1 };
let petya = { name: "Петя", surname: "Иванов", id: 2 };
let masha = { name: "Маша", surname: "Петрова", id: 3 };
 
let users = [ vasya, petya, masha ];
 
let usersMapped = users.map(user => ({
  fullName: `${user.name} ${user.surname}`,
  id: user.id
}));
 
/*
usersMapped = [
  { fullName: "Вася Пупкин", id: 1 },
  { fullName: "Петя Иванов", id: 2 },
  { fullName: "Маша Петрова", id: 3 }
]
*/
 
alert( usersMapped[0].id ); // 1
alert( usersMapped[0].fullName ); // Вася Пупкин

Обратите внимание, что для стрелочных функций мы должны использовать дополнительные скобки.

Мы не можем написать вот так:

JavaScript
1
2
3
4
let usersMapped = users.map(user => {
  fullName: `${user.name} ${user.surname}`,
  id: user.id
});
Как мы помним, есть две функции со стрелками: без тела value => expr и с телом value => {...}.

Здесь JavaScript будет трактовать { как начало тела функции, а не начало объекта. Чтобы обойти это, нужно заключить их в «нормальные» скобки:

JavaScript
1
2
3
4
let usersMapped = users.map(user => ({
  fullName: `${user.name} ${user.surname}`,
  id: user.id
}));
Теперь всё хорошо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2025, 14:39
Ответы с готовыми решениями:

Как трансформировать один массив объектов в другой массив объектов
Ниже приведен код, что трансформирует один массив в другой. Можно ли сделать тоже самое, но без $...

Встроенные объекты Java Script. Объекты Array, Date
Создать массив, содержащий названия элементов, находящихся в системном блоке компьютера. Добавить...

Есть кнопка и объект. Как по клику на кнопку закрасить объект?
Есть кнопка (допустим красная). По клику на кнопку нужно чтобы закрасился объект этим же цветом....

4
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,834
07.10.2025, 15:07
Лучший ответ Сообщение было отмечено sozdatel как решение

Решение

Цитата Сообщение от sozdatel Посмотреть сообщение
Я написал код, и он, вроде, работает
Вы просто раскомментировали пример, что должно получиться) т.е. вручную заполнили массив.. Вот он и заработал)
JavaScript
1
2
3
4
5
usersMapped = [
  { fullName: "Вася Пупкин", id: 1 },
  { fullName: "Петя Иванов", id: 2 },
  { fullName: "Маша Петрова", id: 3 }
]
Добавлено через 13 минут
Цитата Сообщение от sozdatel Посмотреть сообщение
JavaScript
1
2
3
4
let usersMapped = users.map(item => {
    item.name + item.surname,
    item.id
});
А тут вы написали непонятно что. Во-первых {} тут распознаются как тело функции.. если перевести в обычную функцию, получается

JavaScript
1
2
3
4
let usersMapped = users.map(function(item) {
    item.name + item.surname,
    item.id
});
Функция ничего не возвращает. Тут у вас получится
JavaScript
1
usersMapped = [undefined, undefined, undefined]
Даже если все-таки ограничить круглыми скобками

JavaScript
1
2
3
4
let usersMapped = users.map(item => ({
    item.name + item.surname,
    item.id
}));
То получаем ошибку "SyntaxError: Unexpected token '.'"
Когда вы описываете объект - у него должна быть пара, {ключ: значение}. Откуда в вашем примере появится ключ fullName? Вы же это нигде в коде не указали?

JavaScript
1
2
3
4
let usersMapped = users.map(item => ({
    fullName: item.name + item.surname,
    id: item.id,
}));
Ну и прообел должен быть между именем и фамилией

JavaScript
1
2
3
4
let usersMapped = users.map(item => ({
    fullName: item.name + ' ' + item.surname,
    id: item.id,
}));
1
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3838 / 1683 / 431
Регистрация: 14.03.2022
Сообщений: 4,265
07.10.2025, 16:29
Цитата Сообщение от sad67man Посмотреть сообщение
А тут вы написали непонятно что.
Так ему писать нельзя. Он обижается.
0
10 / 10 / 1
Регистрация: 20.08.2016
Сообщений: 245
07.10.2025, 19:55  [ТС]
Цитата Сообщение от sad67man Посмотреть сообщение

JavaScript
1
2
3
4
let usersMapped = users.map(item => ({
    fullName: item.name + ' ' + item.surname,
    id: item.id,
}));
А как записать это не стрелочной функцией, а обычной?

JavaScript
1
2
3
4
let usersMapped = users.map(function(item) ({
    fullName: item.name + ' ' + item.surname,
    id: item.id,
}));;
Не получается.

0
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,834
07.10.2025, 21:59
Лучший ответ Сообщение было отмечено sozdatel как решение

Решение

Цитата Сообщение от sozdatel Посмотреть сообщение
А как записать это не стрелочной функцией, а обычной?
JavaScript
1
2
3
4
5
6
let usersMapped = users.map(function(item) {
    returm {
        fullName: item.name + ' ' + item.surname,
        id: item.id,
    }
});
У вас какие-то вопросы, будто сразу начинаете решать задачи, даже не изучив, а что такое стрелочные функции, чем они отличаются от обычных. Как работает array.map() и т.д. Придумываете какие-то свои несуществующие конструкции и удивляетесь почему они не работают)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2025, 21:59
Помогаю со студенческими работами здесь

Масив объектов. Реализовать функцию, которая вернет новый массив объектов с полями id, name и avaragePrice.
Задан маcсив объектов, например: Нужно реализовать функцию, которая вернет новый маcсив,...

Передать свойство объекта в свойство объекта в объекте что в массиве
var array = ; function func(a, b, c) { array = {}; array.a = {}; // вместо "a" - аргумент ...

Нужно изменить свойство объекта, при наведении объекта на область
Здравствуйте! Нужно чтобы квадрат в зеленой и синей области превращался в круг медленно. В желтой и...

Jasmine. Имеется массив из N объектов , необходимо проверить, что какие-то M объектов входят в этот массив
Имеется массив из N объектов , необходимо проверить, что какие-то M объектов входят в этот массив....

Как собрать из массива ключей и массива объектов - массив объектов?
Как собрать из массива ключей и массива обьектов - массив объектов? // Массив ключей ; //...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru