일부 자바 스크립트 개체의 매핑/축소를 시도하고 있으며 비참하게 실패하고 있습니다.지도 성능이 좋지 않은 개체의 자바 스크립트 배열을 줄입니다.
[
{table:"a1", data: {colA:1,colB:2,colC:3}},
{table:"a2", data: {colA:2,colB:3,colC:4}},
{table:"a3", data: {colA:3,colB:4,colC:5}}
]
Recharts는 결과에 대한 고유의 "이름"키와 소스 데이터 키를 만들어 (다음과 같은 형식의 데이터를 필요로 :
데이터를가 백엔드에서 유래로는 다음과 같이보고 온다 내가 결과 객체를 구축하고, 그 위에마다 반복하고 있습니다 때문에)
[
{name: 'colA', a1: 1, a2: 2, a3: 3},
{name: 'colB', a1: 2, a2: 3, a3: 4},
{name: 'colC', a1: 3, a2: 4, a3: 5}
]
나의 현재 솔루션은 현재 O(n^n)
입니다. ECMA6/Babel과 Lodash를 사용하고 있습니다. 어떤 지침이라도 대단히 감사하겠습니다! 감사!
편집 : 당신이 중첩 된 3 개 루프를 가지고 있기 때문에 다음 (N^N^n)이 알고리즘의 속도는 실제로 O이고, 시작하려면 내 현재 솔루션
var dest = []
Lodash.forEach(source,(o) => {
var table = o.table;
Lodash.forEach(o.data, (p,q) => {
// See if the element is in the array
const index = Lodash.findIndex(dest,(a) => {return a.name === q});
if (index === -1) {
var obj = {};
obj[table] = Number(p);
obj.name = q;
dest.push(obj);
} else {
dest[index][table] = Number(p);
}
})
});
정확한 문제가 무엇입니까 ? 퍼포먼스가 필요하다면, raw'for'를 사용하십시오. – estus
현재 솔루션을 게시 할 수 있습니까? – James
현재 코드를 알려주십시오. – Bergi