Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

245
Views
Discord JS: Extracting data from a collection

I have a command where I want to write the id of a user in a voice channel into an array. So far, I managed to write the whole collection of the user with joinedTimestamp etc. Now I want to extract the id of the user from the collection.

My command looks like this:

client.on('messageCreate', (message) => {
    let waitingroom = message.guild.channels.cache.get("952324088762867722")
    let player = [];
    let isadmin = message.member.roles.cache.has(adminRole);

    if (message.content.toLowerCase() === prefix + 'startgame' && isadmin) {
        player.push(waitingroom.members);
        console.log(player);
    }    
});

And this is what I get from the array when 2 users are in the waitingroom:

[
  Collection(2) [Map] {
    '392776445375545355' => GuildMember {
      guild: [Guild],
      joinedTimestamp: 1646940658665,
      premiumSinceTimestamp: null,
      nickname: null,
      pending: false,
      communicationDisabledUntilTimestamp: null,
      _roles: [Array],
      user: [User],
      avatar: null
    },
    '849388169614196737' => GuildMember {
      guild: [Guild],
      joinedTimestamp: 1647168003344,
      premiumSinceTimestamp: null,
      nickname: 'Test-Account [Nils]',
      pending: false,
      communicationDisabledUntilTimestamp: null,
      _roles: [],
      user: [User],
      avatar: null
    }
  }
]

But I only want the user ids from the collection. I appreciate any help.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Better solution, see accepted answer.

First you need to create a variable with an empty array.
Then you can use the .map function of the member Collection to push the user id's to the array.

let arr = [];
<Channel>.members.map(user => {
    arr.push(user.id);
});
about 4 years ago · Juan Pablo Isaza Report

0

The accepted answer is a bit verbose. Collection#map() returns an array and accepts a callback function, so all you have to do is to iterate over the members and return their ids:

let waitingRoom = message.guild.channels.cache.get('952324088762867722')
let memberIDs = waitingRoom.members.map(member => member.id)

Now, memberIDs is an array of the snowflakes/IDs of the members. No need to create a new array or use the push method. Actually, you should never really use map with push or other methods that mutate arrays.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!