角度过滤器对象中的空数组

时间:2016-04-04 05:28:32

标签: javascript arrays angularjs angular-filters

我有这个对象数组

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);

这是我提出的,但它根本没有给我什么。我不确定这是正确的方式,也不确定结果是什么。

3 个答案:

答案 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);