Перебор массива через цикл и вывод через функцию js
Мне нужно вывести сообщения messagaes с помощью function, путём перебора массива.
По итогу, в консоле должно вывестись примерно следующее:
administrator | Вы получили предупреждение за публикацию рекламы на форуме
Петр | Собираем встречу в субботу в 19:00. Придёшь?
и т.д
А сейчас выводит это:
Имя берётся из from в массиве messagaes, а текст сообщения из text
let user = {
name: "Иван Иванов",
login: "killer504",
reputation: 97,
messages: [{
from: "administrator",
text: "Вы получили предупреждение за публикацию рекламы на форуме"
},
{
from: "Петр",
text: "Собираем встречу в субботу в 19:00. Придёшь?"
},
{
from: "administrator",
text: "Ваш рейтинг был повышен пользователем DonkeyKong"
},
{
from: "administrator",
text: "Ваш рейтинг был повышен пользователем Netologist"
},
{
from: "Brian Kerninghan",
text: "hello, world"
}
]
};
console.log('Всего сообщений: ' + user.messages.length);
function msgs() {
for (let i = 0; i < user.messages.length; i++) {
console.log(user.messages);
}
}
msgs(user.messages);
Ответы (3 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Чтобы оперировать данными в функции, их нужно туда передать как аргумент. Потому что функция ограничивает данные своей областью видимости
msgs(user.messages);
и функция
function msgs(messages) {
...
...
В функции обращаетесь по нужному индексу и ключу messages[i].from и messages[i].text
Автор решения: Ajeet Shah
→ Ссылка
Технически, так:
function formatAndPrint(messages) {
messages.forEach(m => console.log(m.from + " | " + m.text))
}
const user = {
name: "Иван Иванов",
login: "killer504",
reputation: 97,
messages: [{
from: "administrator",
text: "Вы получили предупреждение за публикацию рекламы на форуме"
},
{
from: "Петр",
text: "Собираем встречу в субботу в 19:00. Придёшь?"
},
{
from: "administrator",
text: "Ваш рейтинг был повышен пользователем DonkeyKong"
},
{
from: "administrator",
text: "Ваш рейтинг был повышен пользователем Netologist"
},
{
from: "Brian Kerninghan",
text: "hello, world"
}
]
};
console.log(formatAndPrint(user.messages));
Автор решения: Bear Vorkuta
→ Ссылка
let user = {
name: "Иван Иванов",
login: "killer504",
reputation: 97,
messages: [{
from: "administrator",
text: "Вы получили предупреждение за публикацию рекламы на форуме"
},
{
from: "Петр",
text: "Собираем встречу в субботу в 19:00. Придёшь?"
},
{
from: "administrator",
text: "Ваш рейтинг был повышен пользователем DonkeyKong"
},
{
from: "administrator",
text: "Ваш рейтинг был повышен пользователем Netologist"
},
{
from: "Brian Kerninghan",
text: "hello, world"
}
]
};
console.log('Всего сообщений: ' + user.messages.length);
function msgs() {
for (elem of user.messages) {
console.log(`${elem.from} | ${elem.text}`);
}
}
msgs();
