2017-02-23 2 views
0

Ich bin auf der Suche nach einem Array von Objekten und finden Sie den Index entweder eines übereinstimmenden Objekts Datum oder das nächste Datum, um ein neues Objekt nach einfügen.Filter durch Array und finde den Index für Spleiß

let expenseIndex = tempArray.findIndex((a: any) => a.Date <= expense.Date); 
tempArray.splice(expenseIndex, 0, expense); 

Der Operator <= scheint hier nicht zu funktionieren. Wenn ich == mache und eine Ausgabe mit einem passenden Datum gefunden wird, bekomme ich den Index zurück, aber wenn nichts passt, bekomme ich 0 oder -1.

Antwort

1

Versuchen Sie, diese (vorausgesetzt, die temp-Array ist nach Datum sortiert):

temp = temp 
    .filter(v => v.Date <= exp.Date) 
    .concat(exp, array.filter(v => v.Date > exp.Date)) 
0

Winkel liefert den Index bei Verwendung *ngFor Direktive.

Sie können den Index des aktuellen wie unten

gezeigt bekommen
<div *ngFor="let item of items; let i = index;" 
    (click)="doSomethingWithIndex(i)"> 
    {{item.title}} 
</div> 
+0

Die Frage weist darauf hin, dass ich einfügen müssen ein "neues" Objekt in das Array. Das Beispiel, das Sie haben, arbeitet mit vorhandenen Objekten. Trotzdem danke –

Verwandte Themen