根据键从数组中获取值

Posted

技术标签:

【中文标题】根据键从数组中获取值【英文标题】:Get value from array based on key 【发布时间】:2020-11-12 15:53:47 【问题描述】:

我正在尝试根据数字字符串从数组中获取文本。

这是数组:

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'
  ,
]

我正在尝试根据“级别”获取“文本”。我不确定该怎么做,因为我真的做不到.includes

【问题讨论】:

【参考方案1】:

使用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)

如果您有不止一次的关卡,并且想要返回该关卡的所有元素,请使用filter:

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

【讨论】:

【参考方案2】:

您可以为此使用filter,以允许存在多个匹配项。 Mozilla 有一个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)
);

【讨论】:

以上是关于根据键从数组中获取值的主要内容,如果未能解决你的问题,请参考以下文章

如何根据ios中的特定键从数组中获取字典

jQuery:使用预定义的数组键从输入数组中获取值

在 laravel 5.4 刀片中通过键从多维数组中获取值

使用两个键从哈希获取值[关闭]

PHP Laravel 根据投票表的外键从问题表中获取所有问题

根据codeigniter中的外键从两个表中获取json编码数据