Pisze w TypeScript.
Mam sobie instancje jakiejś klasy w dictionary, której instancje maja pole getRatio
cos w stylu:
export class Step{
public _price:number = 5;
private _depth20Asks:number;
private _depth20Bids:number;
constructor()
{
}
public get depth20Asks():number
{
return this._depth20Asks;
}
public set depth20Asks(val:number)
{
this._depth20Asks = val;
}
public get depth20Bids():number
{
return this._depth20Bids;
}
public set depth20Bids(val:number)
{
this._depth20Bids = val;
}
public get bidsByAsksRatio():number
{
return this._depth20Bids/this._depth20Asks;
}
Wczesniej ustalam sobie wszystkie liczby kiedy tworze instancje i wrzucam to do dictionary gdzieś w jakiejś innej klasie:
export class foo {
private _possibleStepsDictionary:{[name:string]:Step} = {};
...
this._possibleStepsDictionary[name] = s;
}
I teraz chciałbym posortowacć nowy object po tej liczbie, ktora zwraca metoda public get bidsByAsksRatio():number
wiec robie cos takiego:
const sorted_object = Object.fromEntries(
Object.entries(this._possibleStepsDictionary).sort(([,a],[,b]) => { b.bidsByAsksRatio - a.bidsByAsksRatio})
)
Nie sortuje :/ Nawet jak ustawie sobie pole _price
jako public
i zrobię:
const sorted_object = Object.fromEntries(
Object.entries(this._possibleStepsDictionary).sort(([,a],[,b]) => { b._price - a._price})
)
Dalej nie sortuje:/ Nie chce tego wrzucac do zwyklej tablicy bo zrobi mi się bajzel, chce mieć posortowane w key=>val dictionary ale cos nie idzie.
Jakies pomysly?
losowa
kolejnośc nie zmieniała się przez lata i była używana w testach XD