首页 > 解决方案 > 如何从嵌套在对象内部数组中的对象中提取值并将其存储在不同的数组中 JAVASCRIPT

问题描述

[{
    "_id": "5fd6288a155cda5a10d067fa",
    "contacts": [
        {
            "_id": "5fd6288a155cda5a10d067fb",
            "id": "5fd35931ec23f76d387d8464",
            "name": "dean"
        },
        {
            "_id": "5fd6288a155cda5a10d067fc",
            "id": "12",
            "name": "john"
        },
        {
            "_id": "5fd6288a155cda5a10d067fd",
            "id": "1",
            "name": "brad"
        }
    ],
    "messages": [],
    "__v": 0
},
{
    "_id": "5fd63ab97aac3826f8e64558",
    "contacts": [
        {
            "_id": "5fd63ab97aac3826f8e64559",
            "id": "5fd35931ec23f76d387d8464",
            "name": "dean"
        },
        {
            "_id": "5fd63ab97aac3826f8e6455a",
            "id": "12",
            "name": "brad"
        }
    ],
    "messages": [],
    "__v": 0
}]

快速概览:每个对象都包含不同的对话数据。我想从每个对话中提取名称并将它们存储在一个单独的数组中。例如:[[dean, john, brad], [dean, brad]]

标签: javascriptarraysobject

解决方案


const arr = [{
    "_id": "5fd6288a155cda5a10d067fa",
    "contacts": [{
        "_id": "5fd6288a155cda5a10d067fb",
        "id": "5fd35931ec23f76d387d8464",
        "name": "dean"
      },
      {
        "_id": "5fd6288a155cda5a10d067fc",
        "id": "12",
        "name": "john"
      },
      {
        "_id": "5fd6288a155cda5a10d067fd",
        "id": "1",
        "name": "brad"
      }
    ],
    "messages": [],
    "__v": 0
  },
  {
    "_id": "5fd63ab97aac3826f8e64558",
    "contacts": [{
        "_id": "5fd63ab97aac3826f8e64559",
        "id": "5fd35931ec23f76d387d8464",
        "name": "dean"
      },
      {
        "_id": "5fd63ab97aac3826f8e6455a",
        "id": "12",
        "name": "brad"
      }
    ],
    "messages": [],
    "__v": 0
  }
];

const people = arr.map(ele => ele.contacts.map(contact => contact.name));
console.log(people);

映射数组:

const people = arr.map(ele => ele.contacts.map(contact => contact.name));

推荐阅读