2017-09-29 1 views
-1

私はこのような文字列を持っています(これは残りのAPIから得た結果ですが、それは文字列)である:javascriptを使用して名前と値を持つ文字列がjson辞書でない場合は最高の文字列を返す方法

[Alex:1, Rose:12, Howdie:72, Lina:1, Emily:1, Pac:15, Virus:1, Love:18, Brie:11] 

は今、私は必要なものを最高値と名前を返すことである(この例では、これは名前Howdie)になります。私は最高の番号を探してその名前を返す関数を作ることを考えています。しかし、JavaScriptでこれを行う方法があるかどうかはわかりません。

+3

これは有効な配列ではなく、文字列の場合は何も有効ではないので、独自のパーサを作成する必要があります – adeneo

+0

なぜ方法がないのでしょうか?完全な解決策を求めるのではなく、このサイトを実装するようにしてください。これは、このサイトが意味するものではありません。 –

答えて

0

その場合には、このような文字列:今、私たちは値下降した後に解析並べ替えることができるように

const parsed = input 
     .replace("[","") 
     .replace("]","") 
     .split(", ") //get key value pairs 
     .map(pair => pair.split(":"));//get 2d array 

::私たちは、まずjsの有効な配列にそれをインポートする必要が

const input = "[Alex:1, Rose:12, Howdie:72, Lina:1, Emily:1, Pac:15, Virus:1, Love:18, Brie:11]"; 

parsed.sort(([nameA,valueA], [nameB,valueB]) => 
    valueB - valueA 
); 

最大のもの(最初のもの)を取得するには:

const result = parsed[0]; 
//key and value: 
const key = result[0], value = result[1]; 

//OR both at once 

const [key,value] = parsed[0]; 

上位のコードがES6であるあなたが古いブラウザ

をサポートしたい場合は、上のコードが動作することを考えていけない場合は、クリック、var代わりのconst、代わりに=>の定期的な機能を使用することができますhere;)

関連する問題