2017-09-29 11 views
-1

나는 이와 같은 문자열을 가지고 있습니다 (이것은 나머지 API에서 얻은 결과이지만 Json 배열은 아니지만, 이 문자열)입니다 :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)