【发布时间】:2017-11-18 04:59:39
【问题描述】:
这是来自my previous question 的后续问题。根据我收到的答案,我可以在对象数组中的嵌套对象中进行搜索。
请找到这个fiddle for example。
var data = [
{
'booking_name': 'gtec/1101822/lmikdy/ls-rmea/oss11',
'asset_count': 2,
'pdg': 'Invalid',
'user_area': 'Invalid',
'deployment_number': 'Invalid',
'spoc': 'invalid',
'release': 'Invalid',
'start_date': '2017-06-12 00:00:00',
'end_date': '2017-06-16 00:00:00',
'asset_info': [
{
'bams_id': 'BAMS-1001423507',
'hostname': 'GTVOSS11',
'status': 10,
'site_location': 'IEAT01 Tipperary',
'rack_number': 'VIRTUAL RACK',
'rack_u_position': 0,
'manufacturer': 'EMC',
'model': 'VM',
},
{
'bams_id': 'BAMS-1001368001',
'hostname': 'None',
'status': 10,
'site_location': 'IEAT01 Tipperary',
'rack_number': 'VIRTUAL RACK',
'rack_u_position': 0,
'manufacturer': 'HP',
'model': 'HP BL460C GEN8',
}
],
'full_name': 'Invalid (invalid)',
'email_address': 'Invalid'
},
{
'booking_name': 'gtec/1101822/lmikdy/ls-rmea/oss11',
'asset_count': 2,
'pdg': 'Invalid',
'user_area': 'Invalid',
'deployment_number': 'Invalid',
'spoc': 'invalid',
'release': 'Invalid',
'start_date': '2017-06-12 00:00:00',
'end_date': '2017-06-16 00:00:00',
'asset_info': [
{
'bams_id': 'BAMS-1001423507',
'hostname': 'GTVOSS11',
'status': 10,
'site_location': 'IEAT01 Tipperary',
'rack_number': 'VIRTUAL RACK',
'rack_u_position': 0,
'manufacturer': 'EMC',
'model': 'VM',
}
],
'full_name': 'Invalid (invalid)',
'email_address': 'Invalid'
}];
在这里,当我搜索字符串“emc”时,该函数返回两个正确的对象。但是作为“制造商”的“emc”在子对象中。并且每个子对象都不满足这个条件。我正在寻找的结果,例如“emc”,它应该返回 2 个父对象。第一个父对象应该只有一个孩子(另一个孩子有'hp'作为制造商)。第二个父对象应该有一个子对象,因为它与搜索字符串匹配。
我尝试使用搜索结果创建一个新对象,但无法正常工作。
如何返回满足给定搜索字符串的唯一子对象的父对象?
这里是chatlog on my previous question,可以帮助您了解问题和要求。
【问题讨论】:
-
如果这样做,您将不再拥有相同的父对象,因为它的子对象已更改。您可以为两个父对象添加一个唯一标识符,并根据该唯一身份返回一组匹配结果?
-
@Icepickle 没关系,如果我没有相同的父母。但对象格式(键)应该相同。最后我会返回新的搜索到的数据来绑定到表中。
标签: javascript arrays