我试图找到一个键显示多少个实例,然后我也试图获得它们的值。
假设我是计算键tpoint
在packageContents
中显示的次数。然后,我尝试从每个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/