mirror of
https://github.com/lynchmarkHQ/lynchmark.com.git
synced 2026-10-16 16:57:53 +00:00
Docs: Update benchmark results
This commit is contained in:
@@ -1,16 +1,20 @@
|
||||
async function processCSV(csv,cfg){
|
||||
const [{Papa},{groupBy:gb}]=await Promise.all([
|
||||
import('https://cdn.jsdelivr.net/npm/papaparse@5.4.1/papaparse.min.mjs'),
|
||||
import('https://cdn.jsdelivr.net/npm/lodash-es@4.17.21/lodash.js')
|
||||
])
|
||||
const {filterColumn:fc,filterValue:fv,groupBy:gbk,aggregateColumn:ac,operation:op}=cfg
|
||||
const rows=Papa.parse(csv,{header:!0,skipEmptyLines:!0}).data.filter(r=>r&&r[fc]==fv)
|
||||
const grouped=gb(rows,r=>r?.[gbk]??'')
|
||||
return Object.entries(grouped).map(([k,arr])=>{
|
||||
const nums=arr.map(r=>{const n=+r[ac];return Number.isFinite(n)?n:0})
|
||||
const sum=nums.reduce((a,b)=>a+b,0)
|
||||
const result=op==='sum'?sum:op==='avg'?sum/nums.length:arr.length
|
||||
return {[gbk]:k,result}
|
||||
})
|
||||
const[{default:Papa},{groupBy}]=await Promise.all([
|
||||
import('https://cdn.jsdelivr.net/npm/papaparse@5.4.1/+esm'),
|
||||
import('https://cdn.jsdelivr.net/npm/lodash-es@4.17.21/+esm')
|
||||
]);
|
||||
const{filterColumn:f,filterValue:v,groupBy:g,aggregateColumn:a,operation:o}=cfg;
|
||||
const rows=Papa.parse(csv,{header:true,skipEmptyLines:true}).data.filter(r=>r[f]==v);
|
||||
const groups=groupBy(rows,r=>r[g]);
|
||||
return Object.entries(groups).map(([k,list])=>{
|
||||
const nums=list.map(r=>{
|
||||
const n=Number(r[a]);
|
||||
return Number.isFinite(n)?n:0;
|
||||
});
|
||||
const sum=nums.reduce((t,n)=>t+n,0);
|
||||
const count=list.length;
|
||||
const result=o==='sum'?sum:o==='avg'?sum/count:count;
|
||||
return{[g]:k,result};
|
||||
});
|
||||
}
|
||||
export default processCSV;
|
||||
Reference in New Issue
Block a user