我有这个对象数组
var list = [{
"questionId": 1,
"correctChoiceIds": [],
"choiceId": 0,
"number": 1
}, {
"questionId": 1,
"correctChoiceIds": [1234, 4567],
"choiceId": 0,
"number": 2,
}, {
"questionId": 2,
"correctChoiceIds": [],
"choiceId": 0,
"number": 3
}];
//This filter gives me an array with list[0] and list[1]
var filterQuestion = $filter('filter')(list, { questionId: 1 }, true);
我想过滤所有correctChoiceIds
的空数组。
var filterNoCorrectChoice= $filter('filter')(list, { correctChoiceIds: [] }, true);
这是我提出的,但它根本没有给我什么。我不确定这是正确的方式,也不确定结果是什么。
答案 0 :(得分:2)
请参阅demo
使用像这样的过滤器,
var filterNoCorrectChoice= $filter('filter')(list,function(item) {
// must have array, and array must be empty
return item.correctChoiceIds && item.correctChoiceIds.length === 0;
});
答案 1 :(得分:0)
方法过滤原生
var filterQuestion = list.filter(function(el){ return el.correctChoiceIds.length<1; });
// result
console.log(filterQuestion);
答案 2 :(得分:0)
我想过滤所有
的空数组correctChoiceIds
你不需要角度过滤器,使用标准的原生javascript过滤器......
list.filter(x => !x.correctChoiceIds.length);