Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

키로 읽고 JavaScript에서 JSON으로 구문 분석

<시간/>

다음과 같은 JSON 배열이 있다고 가정해 보겠습니다. -

상수 arr =[{ "데이터":[ { "W":1, "A1":"123" }, { "W":1, "A1":"456" }, { "W":2, "A1":"4578" }, { "W":2, "A1":"2423" }, { "W":2, "A1":"2432" }, { "W":2, "A1":"24324" } ]}];

우리는 그러한 배열 중 하나를 가져와 다음 JSON 배열로 변환하는 JavaScript 함수를 작성해야 합니다 -

<미리>[ { "1":[ { "A1":"123" }, { "A1":"456" } ] }, { "2":[ { "A1":"4578" }, { " A1":"2423" }, { "A1":"2432" }, { "A1":"24324" } ] }];

예시

상수 arr =[{ "데이터":[ { "W":1, "A1":"123" }, { "W":1, "A1":"456" }, { "W":2, "A1":"4578" }, { "W":2, "A1":"2423" }, { "W":2, "A1":"2432" }, { "W":2, "A1":"24324" } ]}]; const groupJSON =(arr =[]) => { const preCombined =arr[0].data.reduce((acc, val) => { acc[val.W] =acc[val.W] || []; acc[val.W].push({ A1:val.A1 }); 반환 acc; }, {}); const 결합 =Object.keys(preCombined).reduce((acc, val) => { const temp ={}; temp[val] =preCombined[val]; acc.push(temp); return acc; }, [] ); 결합된 반환;};console.log(JSON.stringify(groupJSON(arr), 정의되지 않음, 4));

출력

콘솔의 출력은 -

<미리>[ { "1":[ { "A1":"123" }, { "A1":"456" } ] }, { "2":[ { "A1":"4578" }, { " A1":"2423" }, { "A1":"2432" }, { "A1":"24324" } ] }]