Javascript 按动态键过滤对象数组

Javascript Filter Array of Objects by Dynamic Key

我从一组对象开始,例如

const data = [
        {
          data1: 124,
          data2: 5332,
          data3: 12,
        },
        {
          data1: 642,
          data2: 5,
          data3: 798,
        }
     ]

我想将对象数组过滤到只有“data2”键,就像这样...

[
        {
          data2: 5332
        },
        {
          data2: 5,
        }
     ]

我试过这个代码:

const key = "data2";
const filtered = data.filter((d) => Object.keys(d.data) === key )

并尝试过此过滤器的变体。我知道我可以使用 data.forEach 但想知道是否有任何方法可以使用 filter

你要的是

const filtered = data.map((d) => ({
  [key]: d[key]
}));

工作片段:

const data = [{
    data1: 124,
    data2: 5332,
    data3: 12,
  },
  {
    data1: 642,
    data2: 5,
    data3: 798,
  }
]

const key = "data2";
const filtered = data.map((d) => ({
  [key]: d[key]
}));

console.log(filtered);