user13880771
user13880771

Reputation:

Get value from array based on key

I'm trying to get the text from an array based on a number string.

This is the array:

const titles = [
  {
    level: '0',
    text: 'None'
  },
  {
    level: '1',
    text: 'Bee Support'
  },
  {
    level: '2',
    text: 'Bee Staff'
  },
  {
    level: '3',
    text: 'Bee Developer'
  },
  {
    level: '4',
    text: 'Safe Number'
  },
  {
    level: '5',
    text: 'Bee Developer'
  },
]

I'm trying to get the "text" based on the "level". I'm unsure how to do this, as I can't really do .includes.

Upvotes: 0

Views: 42

Answers (2)

Ravi Kukreja
Ravi Kukreja

Reputation: 647

Use find

    const titles = [
      {
        level: '0',
        text: 'None'
      },
      {
        level: '1',
        text: 'Bee Support'
      },
      {
        level: '2',
        text: 'Bee Staff'
      },
      {
        level: '3',
        text: 'Bee Developer'
      },
      {
        level: '4',
        text: 'Safe Number'
      },
      {
        level: '5',
        text: 'Bee Developer'
      },
    ];
    console.log(titles.find(item => item.level === "5").text)

If you have a level more than once and you want to return all elements with that level, use filter:

console.log(titles.filter(item => item.level === "5").map(item => item.text));

Upvotes: 2

jdaz
jdaz

Reputation: 6053

You can use filter for this to allow for the possibility of there being multiple matches. Mozilla has a good explanation.

const titles = [
  {
    level: '0',
    text: 'None'
  },
  {
    level: '1',
    text: 'Bee Support'
  },
  {
    level: '2',
    text: 'Bee Staff'
  },
  {
    level: '3',
    text: 'Bee Developer'
  },
  {
    level: '4',
    text: 'Safe Number'
  },
  {
    level: '5',
    text: 'Bee Developer'
  },
]

let searchLevel = "3";
console.log(
     titles.filter(title => title.level == searchLevel)
         .map(title => title.text)
);

Upvotes: 0

Related Questions