如何在打字稿中按对象名称创建过滤器

时间:2021-06-30 07:51:40

标签: javascript typescript filtering

我有这样的数据

{
  "data": {
    "x": [
      {
        "id": 1,
        "y": "yData1"
      },
      {
        "id": 2,
        "y": "yData2"
      }
    ],
    "xx": {
      "xxx": [
        {
          "id": 1,
          "yyy": "yyyData1"
        },
        {
          "id": 2,
          "yyy": "yyyData2"
        }
      ]
    }
  }
}

有时我只想要对象 x 或 xx 或 xxx 或数据中的许多子子项,我准备使用 eval 进行过滤,使用对象名称返回数据

filter(data: any, key: any) {
    return eval("data." + key)
}

有什么想法吗??因为不推荐在 typescript/javascript 中使用 eval

1 个答案:

答案 0 :(得分:0)

只需使用括号表示法即可将变量值用作键:

filter(data: any, key: any) {
    return data[key];
}