代码之家  ›  专栏  ›  技术社区  ›  shekhar

如何根据JavaScript中的值选择从对象中获取任何id(值)

  •  -1
  • shekhar  · 技术社区  · 2 年前

    我有一个具有键值对的对象,即id和值,如下所示。

    var dataObject = [
        {
            "value": "A",
            "id": 1,
        },
        {
            "value": "B",
            "id": 2,
        },
        {
            "value": "C",
            "id": 3,
        },
        {
            "value": "D",
            "id": 4,
        },
        {
            "value": "E",
            "id": 5,
        }
    ]
    

    我从前端的多选择器中选择值,例如我选择B和C

    var selectedData = ['B', 'C']
    

    我期望下面的对象作为dataObject的有效负载发送。

    "selection": [
        {
          "siteId": 2
        },
        {
          "siteId": 3
        }
      ],
    

    我试过了 滤器 地图 这样地

    var result = dataObject.filter(item => item.value === 'B').map(item => item.id);
    

    但没有得到正确的结果

    提前谢谢。

    1 回复  |  直到 2 年前
        1
  •  3
  •   Hao-Jung Hsieh    2 年前

    您可以使用 includes 数组方法。

    var result = dataObject.filter(item => selectedData.includes(item.value) ).map(item => ({siteId:item.id}));
    

    顺便说一句,只有当selectedData的顺序与dataObject相同时,它才会起作用。