JenMorgan / js-learning

0 stars 0 forks source link

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

Open JenMorgan opened 3 years ago

JenMorgan commented 3 years ago

У вас есть массив объектов user, и у каждого из объектов есть name, surname и id.

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

Например:

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 ) // Вася Пупкин
JenMorgan commented 3 years ago
let vasya = { name: "Вася", surname: "Пупкин", id: 1 };
let petya = { name: "Петя", surname: "Иванов", id: 2 };
let masha = { name: "Маша", surname: "Петрова", id: 3 };

let users = [ vasya, petya, masha ];

const mapperFnId = ({name, surname, id}) => ({
    fullName: `${name} ${surname}`,
    id,
})

const mapperFnWithoutId = ({name, surname}) => ({
    fullName: `${name} ${surname}`
})

const usersMapping = (arr, fn) => arr.map(fn);
JenMorgan commented 3 years ago
describe("UsersMapping", () => {
    it('creates new array of objects with the info from different array of object', () => {
        let arr = [
            { fullName: "Вася Пупкин", id: 1 },
            { fullName: "Петя Иванов", id: 2 },
            { fullName: "Маша Петрова", id: 3 }
        ]
        assert.deepEqual(usersMapping (users, mapperFnId), arr);
    });
});