【问题标题】:Javascript Filter Array of Objects by Dynamic KeyJavascript通过动态键过滤对象数组
【发布时间】:2022-09-24 05:51:06
【问题描述】:

我从一组对象开始,例如

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

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

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

我尝试使用 filter 方法和几个回调变体,例如:

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

我知道我可以使用data.forEach,但想知道是否有任何方法可以使用filter 来实现这一点。

  • 你想要map 而不是filter

标签: javascript object filter


【解决方案1】:

你想要的是

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

工作sn-p:

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);

【讨论】:

    猜你喜欢
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 2023-02-11
    相关资源
    最近更新 更多