我试图找到一个键显示多少个实例,然后我也试图获得它们的值。

假设我是计算键tpointpackageContents中显示的次数。然后,我尝试从每个touches中获取逗号分隔的tpoint列表。像这样:

tpInstance = 2;

[tpoint = 21,tpoint = 9]

有谁知道我怎么能得到这个?

var packageContents = {
        'packages': {
            'package': {
                'price': '32',
                'name': 'Gold Bundle Package',
                'calendar': {
                    'type': '2year',
                    'color': 'Brushed Nickel',
                },
                'tpoint': {
                    'type': 'Gold',
                    'touches': '21',
                    'years': '7',
                }
            },
            'package': {
                'price': '23',
                'name': 'Bronze Bundle Package',
                'calendar': {
                    'type': '2year',
                    'color': 'Brushed Nickel',
                },
                'tpoint': {
                    'type': 'Bronze',
                    'touches': '9',
                    'years': '7',
                }
            }
        }
    };

    var tpInstance = Object.keys(package).length;
    console.log(tpInstance);

最佳答案

您可以将packageContents结构更改为:

var packageContents = {
    'packages': [
        {
            'price': '32',
            'name': 'Gold Bundle Package',
            'calendar': {
                'type': '2year',
                'color': 'Brushed Nickel',
            },
            'tpoint': {
                'type': 'Gold',
                'touches': '21',
                'years': '7',
            }
        },
        {
            'price': '23',
            'name': 'Bronze Bundle Package',
            'calendar': {
                'type': '2year',
                'color': 'Brushed Nickel',
            },
            'tpoint': {
                'type': 'Bronze',
                'touches': '9',
                'years': '7',
            }
        }
    ]
};


这是因为您重复了名为package ..的键,这将使工作:

var tpInstance = 0;
var result = [];
packageContents.packages.map(function(pack) {
    if('tpoint' in pack) {
        if('touches' in pack.tpoint) {
            result.push(pack.tpoint.touches);
            tpInstance ++;
        }
    }
});

关于javascript - 如何从多维对象获取键及其值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44811616/

10-12 21:20