hdacollection
@hdacollection
Обучаюсь - Графический дизайнер | Web-разработчик

Как в цикле messages, преобразовывать вложенные массивы в объекты с подходящими ключами author и text и добавить в новый массив?

let messages = [
[ "zloy-zloy", "Мы с Алешей сегодня на иксбоксе рубились, потом в маке поели, потом ему новый телефон купили, и два часа с горок в Нескучном саду катались."],
["zloy-zloy", "У Алеши завтра день рождения."],
["zloy-zloy", "Он мой дед. Ему будет 81 год."],
["Вы", "LOL"]
];

let chat = []

for (let i = 0; i < messages.length; i++) {
_______________________________________ ?
}

где:
messages[i][0] - Автор
messages[i][1] - Сообщение
  • Вопрос задан
  • 279 просмотров
Решения вопроса 1
hdacollection
@hdacollection Автор вопроса
Обучаюсь - Графический дизайнер | Web-разработчик
let chats = [];

for (let i = 0; i < messages.length; i++) {
chats.push({
author: messages[i][0],
text: messages[i][1],
});
}

for (let i = 0; i < chats.length; i++) {
let {author, text} = chats[i];
console.log(`${author}: ${text}`);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Seasle
@Seasle Куратор тега JavaScript
array.map(([author, text]) => ({ author, text }))
или
array.reduce((acc, [author, text]) => [...acc, { author, text }], [])

или
array.reduce((acc, [author, text]) => (acc.push({ author, text }), acc), [])

или
array.reduce((acc, [author, text]) => {
    acc.push({ author, text });
    return acc;
}, [])

или
array.reduce((acc, pair) => {
    acc.push({
        author: pair[0],
        text: pair[1]
    });
    return acc;
}, [])

Код делает по сути одну и ту же работу. Также, можете перевести всю логику в for если Вам это необходимо.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект