2017-07-17 1 views
0

Ich versuche, ein paar lodash sortBy Funktionen zu verketten, aber auf die endgültige sortBy möchte ich es bedingungsfähig machen. Ich will nicht, um die Position in der Anordnung ändern, wenn die UTC der gleicheWie man lodash sortBy nicht sortiert, wenn die Werte gleich sind

Code ist:

const events = _(arr).chain().sortBy((e) => { 
    return e.event.json.QUERY.type 
    }).sortBy((e) => { 
    if (e.event.json.QUERY.type === 'ad') { 
     return e.event.json.QUERY.metadata.ad.assetid; 
    } else { 
     return e.event.json.QUERY.metadata.content.assetid; 
    } 
    }).sortBy((e) => { 
    return e.event.json.QUERY.utc; // this is where I want a conditional but I don't know if that's possible with lodash 
    }).value() 

Antwort

1

Die lodash sortBy Methode implementiert eine stabile Art, das heißt, es wird nicht Swap-Elemente, wenn ihre Art Schlüsselwert sind gleich.

Vom documentation on sortBy:

Diese Methode führt eine stabile Art, das heißt, es bewahrt die ursprüngliche Sortierreihenfolge gleicher Elemente.

+0

Vielen Dank. Ich musste mit meinem vorherigen Array eine Konsolenprotokollierung durchgeführt haben und wusste nicht, dass das neue Array tatsächlich das tat, was ich wollte. Vielen Dank! – Steve

+0

Vergessen Sie nicht, [die Antwort als akzeptiert zu markieren] (http://stackoverflow.com/help/someone-answers). – trincot

Verwandte Themen