【发布时间】:2016-11-17 10:56:42
【问题描述】:
我正在尝试根据一些嵌套对象过滤一个数组。我准备了一些Fiddle
输入数组如下所示:
let arrayOfElements =
[
{
"name": "a",
"subElements":
[
{"surname": 1},
{"surname": 2}
]
},
{
"name": "b",
"subElements":
[
{"surname": 3},
{"surname": 1}
]
},
{
"name": "c",
"subElements":
[
{"surname": 2},
{"surname": 5}
]
}
];
我希望这种情况下的输出如下所示:
let filteredArray =
[
{
"name": "a",
"subElements":
[
{"surname": 1}
]
},
{
"name": "b",
"subElements":
[
{"surname": 1}
]
}
];
我正在使用这个公式来做到这一点:
let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));
输出几乎很好,但它返回的对象包含所有带有姓氏的对象(最好检查一下小提琴:D),而不是把它们剪掉。如何改进过滤?
【问题讨论】:
-
您是否要根据姓氏进行分组?我的意思是同样的事情应该分组
a和c,因为他们姓2。对吗?
标签: javascript filtering