2016-04-04 8 views
3

Ich habe dieses Array von ObjektenWinkelfilter leeres Array in einem Objekt

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

ich für ihre correctChoiceIds alle, die mit einem leeren Array filtern möchten.

Dies ist, was ich kam, aber es gibt mir einfach nichts. Ich bin mir nicht sicher, ob das der richtige Weg ist oder warum es zu nichts führt.

Antwort

2

siehe demo

verwenden Sie den Filter wie folgt,

var filterNoCorrectChoice= $filter('filter')(list,function(item) { 
     // must have array, and array must be empty 
     return item.correctChoiceIds && item.correctChoiceIds.length === 0; 
    }); 
+0

Danke, das funktioniert und ist einfach – riyu

0

Methode Filter nativen

var filterQuestion = list.filter(function(el){ return el.correctChoiceIds.length<1; }); 
// result 
console.log(filterQuestion); 
1

Ich möchte für ihre correctChoiceIds

alle, die mit einem leeren Array filtern
nicht einen Winkelfilter dafür brauchen,

Sie verwenden einen Standard, nativen javascript Filter ...

list.filter(x => !x.correctChoiceIds.length); 
+0

Dieses funktioniert auch zu verstehen, aber ich verstehe nicht, verstehe die Syntax durchaus. Ich bin immer noch ein Anfänger. – riyu

+0

@riyu können Sie die Dokumente für ['filter'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) und für [' Pfeilfunktionen '] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions), aber im Grunde filtern Sie alle Elemente in Ihrer Liste, die ein leeres' 'haben correctChoiceIds' array ('x.correctChoiceIds.length === 0', 0 ist ein falscher Wert in Javascript, deshalb negiere ich die Bedingung mit dem'! '). Hoffe jetzt ist es klarer;) – Kutyel

+0

Danke, ich werde darüber lesen. – riyu