首页 > 解决方案 > 访问另一个对象中的对象值

问题描述

我目前有一个看起来像这样的对象:

{
    "Best Fare Description": {
        "text": {
            "value": "One",
            "type": "TEXT"
        }
    },
    "Brand ID": {
        "text": {
            "value": "test",
            "type": "TEXT"
        }
    },
    "Program ID": {
        "text": {
            "value": "test",
            "type": "TEXT"
        }
    },
    "Max Elapse Time": {
        "integer": {
            "value": 4,
            "type": "INTEGER"
        }
    },
    "Max Number of Connections": {
        "integer": {
            "value": 5,
            "type": "INTEGER"
        }
    }
}

我正在尝试遍历对象并创建一个仅包含值的数组。所以对于这个对象,我会返回一个数组

["One","test","test",4,5]

我试过的:

数据是对象

      const tempList = [];

      for (var key in data) {
        for (var key2 in data[key]) {
            for (var key3 in data[key][key2]) {
                tempList.push(key3['value'])
                }
            }
        }

但是,似乎我没有做正确的事情,因为当我推入数组时出现未定义或错误。有没有更简单/更有效的方法来实现这一点?任何帮助,将不胜感激!

标签: javascript

解决方案


由于动态键,您可以获取值并映射最后一项。

var data = { "Best Fare Description": { text: { value: "One", type: "TEXT" } }, "Brand ID": { text: { value: "test", type: "TEXT" } }, "Program ID": { text: { value: "test", type: "TEXT" } }, "Max Elapse Time": { integer: { value: 4, type: "INTEGER" } }, "Max Number of Connections": { integer: { value: 5, type: "INTEGER" } } },
    result = Object.values(data).map(o => Object.values(o)[0].value);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }


推荐阅读