Напиши функции которые с помощью перебирающих методов массива (без for, splice и т. д.) выполняют операции над массивом объектов пользователей
users = [
{
id: '701b29c3-b35d-4cf1-a5f6-8b12b29a5081',
name: 'Moore Hensley',
email: '[email protected]',
eyeColor: 'blue',
friends: ['Sharron Pace'],
isActive: false,
balance: 2811,
skills: ['ipsum', 'lorem'],
gender: 'male',
age: 37,
},
{
id: '7a3cbd18-57a1-4534-8e12-1caad921bda1',
name: 'Sharlene Bush',
email: '[email protected]',
eyeColor: 'blue',
friends: ['Briana Decker', 'Sharron Pace'],
isActive: true,
balance: 3821,
skills: ['tempor', 'mollit', 'commodo', 'veniam', 'laborum'],
gender: 'female',
age: 34,
},
{
id: '88beb2f3-e4c2-49f3-a0a0-ecf957a95af3',
name: 'Ross Vazquez',
email: '[email protected]',
eyeColor: 'green',
friends: ['Marilyn Mcintosh', 'Padilla Garrison', 'Naomi Buckner'],
isActive: false,
balance: 3793,
skills: ['nulla', 'anim', 'proident', 'ipsum', 'elit'],
gender: 'male',
age: 24,
},
{
id: '249b6175-5c30-44c6-b154-f120923736f5',
name: 'Elma Head',
email: '[email protected]',
eyeColor: 'green',
friends: ['Goldie Gentry', 'Aisha Tran'],
isActive: true,
balance: 2278,
skills: ['adipisicing', 'irure', 'velit'],
gender: 'female',
age: 21,
},
{
id: '334f8cb3-eb04-45e6-abf4-4935dd439b70',
name: 'Carey Barr',
email: '[email protected]',
eyeColor: 'blue',
friends: ['Jordan Sampson', 'Eddie Strong'],
isActive: true,
balance: 3951,
skills: ['ex', 'culpa', 'nostrud'],
gender: 'male',
age: 27,
},
{
id: '150b00fb-dd82-427d-9faf-2879ea87c695',
name: 'Blackburn Dotson',
email: '[email protected]',
eyeColor: 'brown',
friends: ['Jacklyn Lucas', 'Linda Chapman'],
isActive: false,
balance: 1498,
skills: ['non', 'amet', 'ipsum'],
gender: 'male',
age: 38,
},
{
id: 'e1bf46ab-7168-491e-925e-f01e21394812',
name: 'Sheree Anthony',
email: '[email protected]',
eyeColor: 'brown',
friends: ['Goldie Gentry', 'Briana Decker'],
isActive: true,
balance: 2764,
skills: ['lorem', 'veniam', 'culpa'],
gender: 'female',
age: 39,
},
];
Вот мой код, не пойму в чём дело, если можно описать решение декларативным и императивным способом
const getUsersWithFriend = (users, friendName) => {
let arrNew = [];
const checkOut = function (arr, el) {
for (let j = 0; j <= arr.length; j++) {
if (arr[i] === el) {
return true;
}
}
}
for (let i = 0; i <= users.length; i++) {
if (checkOut(users[i].friends, friendName)) {
arrNew.push(users[i].name);
}
}
return arrNew;
};
console.log(getUsersWithFriend(users, 'Briana Decker')); // [ 'Sharlene Bush', 'Sheree Anthony' ] console.log(getUsersWithFriend(users, 'Goldie Gentry')); // [ 'Elma Head', 'Sheree Anthony' ]
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Для начала ваш Код. Чтоб работал
let users = [
{
id: '701b29c3-b35d-4cf1-a5f6-8b12b29a5081',
name: 'Moore Hensley',
email: '[email protected]',
eyeColor: 'blue',
friends: ['Sharron Pace'],
isActive: false,
balance: 2811,
skills: ['ipsum', 'lorem'],
gender: 'male',
age: 37,
},
{
id: '7a3cbd18-57a1-4534-8e12-1caad921bda1',
name: 'Sharlene Bush',
email: '[email protected]',
eyeColor: 'blue',
friends: ['Briana Decker', 'Sharron Pace'],
isActive: true,
balance: 3821,
skills: ['tempor', 'mollit', 'commodo', 'veniam', 'laborum'],
gender: 'female',
age: 34,
},
{
id: '88beb2f3-e4c2-49f3-a0a0-ecf957a95af3',
name: 'Ross Vazquez',
email: '[email protected]',
eyeColor: 'green',
friends: ['Marilyn Mcintosh', 'Padilla Garrison', 'Naomi Buckner'],
isActive: false,
balance: 3793,
skills: ['nulla', 'anim', 'proident', 'ipsum', 'elit'],
gender: 'male',
age: 24,
},
{
id: '249b6175-5c30-44c6-b154-f120923736f5',
name: 'Elma Head',
email: '[email protected]',
eyeColor: 'green',
friends: ['Goldie Gentry', 'Aisha Tran'],
isActive: true,
balance: 2278,
skills: ['adipisicing', 'irure', 'velit'],
gender: 'female',
age: 21,
},
{
id: '334f8cb3-eb04-45e6-abf4-4935dd439b70',
name: 'Carey Barr',
email: '[email protected]',
eyeColor: 'blue',
friends: ['Jordan Sampson', 'Eddie Strong'],
isActive: true,
balance: 3951,
skills: ['ex', 'culpa', 'nostrud'],
gender: 'male',
age: 27,
},
{
id: '150b00fb-dd82-427d-9faf-2879ea87c695',
name: 'Blackburn Dotson',
email: '[email protected]',
eyeColor: 'brown',
friends: ['Jacklyn Lucas', 'Linda Chapman'],
isActive: false,
balance: 1498,
skills: ['non', 'amet', 'ipsum'],
gender: 'male',
age: 38,
},
{
id: 'e1bf46ab-7168-491e-925e-f01e21394812',
name: 'Sheree Anthony',
email: '[email protected]',
eyeColor: 'brown',
friends: ['Goldie Gentry', 'Briana Decker'],
isActive: true,
balance: 2764,
skills: ['lorem', 'veniam', 'culpa'],
gender: 'female',
age: 39,
}
];
const getUsersWithFriend = (users, friendName) => {
let arrNew = [];
const checkOut = function (arr, el) {
for (let j = 0; j < arr.length; j++) {
if (arr[j] === el) {
return true;
}
}
return false;
}
for (let i = 0; i < users.length; i++) {
if (checkOut(users[i].friends, friendName)) {
arrNew.push(users[i].name);
}
}
return arrNew;
};
console.log(getUsersWithFriend(users, 'Briana Decker')); // [ 'Sharlene Bush', 'Sheree Anthony' ]
console.log(getUsersWithFriend(users, 'Goldie Gentry')); // [ 'Elma Head', 'Sheree Anthony' ]
- ну и в императивном ваша функция
getUsersWithFriendвыраждается в строчку
const getUsersWithFriend = (users, friendName) => users.filter(item=>item.friends.includes(friendName)).map(item=>item.name);
let users = [
{
id: '701b29c3-b35d-4cf1-a5f6-8b12b29a5081',
name: 'Moore Hensley',
email: '[email protected]',
eyeColor: 'blue',
friends: ['Sharron Pace'],
isActive: false,
balance: 2811,
skills: ['ipsum', 'lorem'],
gender: 'male',
age: 37,
},
{
id: '7a3cbd18-57a1-4534-8e12-1caad921bda1',
name: 'Sharlene Bush',
email: '[email protected]',
eyeColor: 'blue',
friends: ['Briana Decker', 'Sharron Pace'],
isActive: true,
balance: 3821,
skills: ['tempor', 'mollit', 'commodo', 'veniam', 'laborum'],
gender: 'female',
age: 34,
},
{
id: '88beb2f3-e4c2-49f3-a0a0-ecf957a95af3',
name: 'Ross Vazquez',
email: '[email protected]',
eyeColor: 'green',
friends: ['Marilyn Mcintosh', 'Padilla Garrison', 'Naomi Buckner'],
isActive: false,
balance: 3793,
skills: ['nulla', 'anim', 'proident', 'ipsum', 'elit'],
gender: 'male',
age: 24,
},
{
id: '249b6175-5c30-44c6-b154-f120923736f5',
name: 'Elma Head',
email: '[email protected]',
eyeColor: 'green',
friends: ['Goldie Gentry', 'Aisha Tran'],
isActive: true,
balance: 2278,
skills: ['adipisicing', 'irure', 'velit'],
gender: 'female',
age: 21,
},
{
id: '334f8cb3-eb04-45e6-abf4-4935dd439b70',
name: 'Carey Barr',
email: '[email protected]',
eyeColor: 'blue',
friends: ['Jordan Sampson', 'Eddie Strong'],
isActive: true,
balance: 3951,
skills: ['ex', 'culpa', 'nostrud'],
gender: 'male',
age: 27,
},
{
id: '150b00fb-dd82-427d-9faf-2879ea87c695',
name: 'Blackburn Dotson',
email: '[email protected]',
eyeColor: 'brown',
friends: ['Jacklyn Lucas', 'Linda Chapman'],
isActive: false,
balance: 1498,
skills: ['non', 'amet', 'ipsum'],
gender: 'male',
age: 38,
},
{
id: 'e1bf46ab-7168-491e-925e-f01e21394812',
name: 'Sheree Anthony',
email: '[email protected]',
eyeColor: 'brown',
friends: ['Goldie Gentry', 'Briana Decker'],
isActive: true,
balance: 2764,
skills: ['lorem', 'veniam', 'culpa'],
gender: 'female',
age: 39,
}
];
const getUsersWithFriend = (users, friendName) => users.filter(item=>item.friends.includes(friendName)).map(item=>item.name);
console.log(getUsersWithFriend(users, 'Briana Decker')); // [ 'Sharlene Bush', 'Sheree Anthony' ]
console.log(getUsersWithFriend(users, 'Goldie Gentry')); // [ 'Elma Head', 'Sheree Anthony' ]