如何用Javascript中的键数组过滤键值字典?

时间:2019-05-22 18:23:51

标签: javascript arrays dictionary

var allOptions = [
    {value: 'AA', key: 'a'},
    {value: 'BB', key: 'b'},
    {value: 'CC', key: 'c'},
    {value: 'DD', key: 'd'},
    {value: 'EE', key: 'e'}
];

var selected = ['a', 'c'];

我想从allOptions获取在可变数组selected中具有键的对象

即我希望结果为

[
    {value: 'AA', key: 'a'},
    {value: 'CC', key: 'c'},
];

如果不涉及jquery,任何建议都值得赞赏。

1 个答案:

答案 0 :(得分:2)

您可以只在过滤器中使用includes并将数组项与key对象进行比较。

var allOptions = [{
    value: 'AA',
    key: 'a'
  },
  {
    value: 'BB',
    key: 'b'
  },
  {
    value: 'CC',
    key: 'c'
  },
  {
    value: 'DD',
    key: 'd'
  },
  {
    value: 'EE',
    key: 'e'
  }
];

var selected = ['a', 'c'];

const res = allOptions.filter(el => selected.includes(el.key));

console.log(res)