Home > Back-end >  maping correct structure text
maping correct structure text

Time:01-16

How do I make this structure:

busy: admin1,admin2,admin3,
sleep: admin0,

I don't know what I'm doing wrong, I need to line it all up



const user = [
  {
  status: "busy", 
  username: "admin1"},
 {
  status: "busy", 
  username: "admin2"},
  {
  status: "busy", 
  username: "admin3"},
{
  status: "sleep", 
  username: "admin0"},
]

let text = ``
user.map((v) => {
text  = `${v.status}: ${v.username}\n`
})

console.log(text)
busy: admin1
busy: admin2
busy: admin3
sleep: admin0


I need to do it correctly, how? I don't know what I should do next I'm up

CodePudding user response:

You could group them first (use array.reduce) and then create the texts from there.

const user = [{
    status: "busy",
    username: "admin1"
  },
  {
    status: "busy",
    username: "admin2"
  },
  {
    status: "busy",
    username: "admin3"
  },
  {
    status: "sleep",
    username: "admin0"
  },
]

const grouped = user.reduce((groups, user) => ({
  ...groups,
  [user.status]: [...(groups[user.status] || []), user.username]
}), {});

const text = Object.entries(grouped).map(([key, values]) => `${key}: ${values}`).join('\n');

console.log(text);

  • Related