user13880771
user13880771

Reputation:

Check if userid matches one in the array

I'm attempting to check if a user's ID is in this array and if they are, also get the "text" from it.

Array:

const staff = [
    {
        user: '245569534218469376',
        text: 'dev'
    },
    {
        user: '294597887919128576',
        text: 'loner'
    }
];

I've tried if (staff.user.includes(msg.member.id)) (Which I didn't think was going to work, and didn't.)

Upvotes: 0

Views: 854

Answers (4)

Lamine Kessoum
Lamine Kessoum

Reputation: 51

One another way to do that is:

const inArray = (array, id) => array.filter(item => item.user === id).length >= 1;

const users = [
{
  user: '245569534218469356',
  text: 'foo'
  }, {
  user: '245564734218469376',
  text: 'bar'
  }, {
  user: '246869534218469376',
  text: 'baz'
  }
];


console.log(inArray(users, '246869534218469376'));  // true 
console.log(inArray(users, '222479534218469376'));  // false

Upvotes: 0

The Alpha
The Alpha

Reputation: 146219

You may try something like this:

const staff = [
    {
        user: '245569534218469376',
        text: 'dev'
    },
    {
        user: '294597887919128576',
        text: 'loner'
    }
];

let item = staff.find(item => item.user == '294597887919128576'); // msg.member.id

if (item) {
    console.log(item.text);
}

Upvotes: 0

kerm
kerm

Reputation: 753

const findUser = (users, id) => users.find(user => user.id === id)

const usersExample = [
  {
    id: '123456765',
    text: 'sdfsdfsdsd'
  },
  {
    id: '654345676',
    text: 'fdgdgdg'
  }
]
//////////////////


const user = findUser(usersExample, '123456765')

console.log(user && user.text)

Upvotes: 0

Adrian Brand
Adrian Brand

Reputation: 21638

The some method on an array is used to tell if an item meets a condition, it is similar to the find method but the find method returns the item where the some method return true or false.

const staff = [
    {
        user: '245569534218469376',
        text: 'dev'
    },
    {
        user: '294597887919128576',
        text: 'loner'
    }
];

const isStaff = (staff, id) => staff.some(s => s.user === id);

console.log(isStaff(staff, '123'));

console.log(isStaff(staff, '245569534218469376'));

Upvotes: 0

Related Questions