首页 > 解决方案 > 如何使用它们的键从嵌套的 JSON 数据数组中提取最里面的值?

问题描述

以下数据结构是一个数组,每个数组元素都是一个带有键的对象:

this.objectImWorkingWith = [
  {
    "1306": {
      "id": 6460,
      "data": "Process",
    },
    "1307": {
      "id": 6461,
      "data": "1287",
    },
    "1309”: {
      "id": 6462,
      "data": “2748”,
    }
  },
  {
    "1306": {
      "id": 6465,
      "data": "Product",
    },
    "1307": {
      "id": 6466,
      "data": "2574",
    },
    "1309”: {
      "id": 6263,
      "data": “3752”,
    }
  },
  {
    "1306": {
      "id": 6470,
      "data": "Research",
    },
    "1307": {
      "id": 6471,
      "data": "3861",
    },
    "1307": {
      "id": 6472,
      "data": “2248”,
    }
  }
]

数组中的每个元素都有多个对象,我想检索父对象中每个对象的“数据”值,同时保留结构。这意味着我想保留,例如,进程、1287 和 2748 组合在一起等等。

因此,总而言之,我的目标是获取数组中每个对象的“数据”值,但保持数组中同一对象中的所有数据值相互关联。

我试过了

Object(this.allRelevantData.map(a=>a.data))

但是它会产生

[undefined, undefined, undefined]

标签: javascriptarraysjsonkeykey-value

解决方案


你可以试试这个:

var objectImWorkingWith = [
  {
    1306: {
      id: 6460,
      data: "Process",
    },
    1307: {
      id: 6461,
      data: "1287",
    },
    1309: {
      id: 6462,
      data: "2748",
    },
  },
  {
    1306: {
      id: 6465,
      data: "Product",
    },
    1307: {
      id: 6466,
      data: "2574",
    },
    1309: {
      id: 6263,
      data: "3752",
    },
  },
  {
    1306: {
      id: 6470,
      data: "Research",
    },
    1307: {
      id: 6471,
      data: "3861",
    },
    1307: {
      id: 6472,
      data: "2248",
    },
  },
];

const result = objectImWorkingWith.map((object) => {
  const data = [];
  for (var key of Object.keys(object)) {
    data.push(object[key].data);
  }

  return data;
});

变量结果将包含:[["Process", "1287", "2748"], ["Product", "2574", "3752"],...]


推荐阅读