我正在尝试查找密钥显示的实例数,然后我也尝试获取它们的值。
我们假设我计算了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);
答案 0 :(得分:1)
您可以将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 ++;
}
}
});
答案 1 :(得分:0)
这里有一些事情。在Javascript中,对象属性必须是唯一的。通过将items:
id | item | parent_id
------------------------
1 | banana | 0
2 | orange | 1
3 | tomato | 0
items_tags:
id | item_id | tag_id
---------------------
1 | 1 | 1
2 | 1 | 2
3 | 2 | 3
4 | 3 | 4
tags:
id | tag
--------------
1 | yellow
2 | fruit
3 | orange
4 | red
设置为packageContents.packages.package
,然后将相同的属性设置为Gold Bundle Package
,您可以有效地覆盖原始属性。就像其他答案所说,你可以这样重写你的对象:
Bronze Bundle Package
注意,键现在是包# 。我的做法很严重,但确实有效。我们可以使用var packageContents = {
'packages': {
'package1': {
'price': '23',
'name': 'Bronze Bundle Package',
'calendar': {
'type': '2year',
'color': 'Brushed Nickel',
},
'tpoint': {
'type': 'Bronze',
'touches': '9',
'years': '7',
}
},
'package2': {
'price': '32',
'name': 'Gold Bundle Package',
'calendar': {
'type': '2year',
'color': 'Brushed Nickel',
},
'tpoint': {
'type': 'Gold',
'touches': '21',
'years': '7',
}
}
}
};
来计算对象的结构并迭代它的值。这是我的方法:
Object.keys()
希望这些评论能够澄清任何混淆。