【问题标题】:Find value using id in array using JavaScript使用 JavaScript 在数组中使用 id 查找值
【发布时间】:2023-01-26 15:59:43
【问题描述】:

我需要找到价值属于 type2.id,其中 id 在以下对象中为 7

[
  {
    "type1": {
      "id": "1",
      "value": "val1"
    },
    "type2": [
      {
        "id": "2",
        "value": "val2"
      }
    ]
  },
  {
    "type1": null,
    "type2": [
      {
        "id": "5",
        "value": "val5"
      }
    ]
  },
  {
    "type1": {
      "id": "3",
      "value": "val3"
    },
    "type2": [

    ]
  },
  {
    "type1": {
      "id": "4",
      "value": "val4"
    },
    "type2": [
      {
        "id": "7",
        "value": "val7"
      }
    ]
  }
]

请注意 type1 是一个简单的对象,type 2 是一个数组,type2 也可以是空数组。

【问题讨论】:

标签: javascript


【解决方案1】:

let value = null;
obj.forEach(item => {
  if (item.type2 && item.type2.length > 0) {
    item.type2.forEach(type2 => {
      if (type2.id === '7') {
        value = type2.value;
      }
    });
  }
});

console.log("first way : ", value);
let type2Array = obj.map(obj => obj.type2).flat()
value = type2Array.filter(obj => obj.id === '7').at(0)?.value
console.log("second way : ", value);
<script>
  const obj = [{
      "type1": {
        "id": "1",
        "value": "val1"
      },
      "type2": [{
        "id": "2",
        "value": "val2"
      }]
    },
    {
      "type1": null,
      "type2": [{
        "id": "5",
        "value": "val5"
      }]
    },
    {
      "type1": {
        "id": "3",
        "value": "val3"
      },
      "type2": [

      ]
    },
    {
      "type1": {
        "id": "4",
        "value": "val4"
      },
      "type2": [{
        "id": "7",
        "value": "val7"
      }]
    }
  ];
</script>

【讨论】:

    【解决方案2】:

    将数组分配给 const 并制作嵌套映射。

    const foundObj = array.map(obj => obj.type2.map(type2obj => type2obj.id === '7')));
    
    const value = foundObj.value
    

    在这里小提琴:https://jsfiddle.net/

    【讨论】:

      猜你喜欢
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 2021-04-28
      • 1970-01-01
      • 2016-12-10
      • 2022-08-03
      相关资源
      最近更新 更多