JavaScript 代码优化:分析日志数据并提取关键信息
function optimizeFunction(val) { const allinfo = {}; const Jsoninfo = { '1000': '刷新视野耗时', '1001': '拾取触发耗时', '1003': '穿戴装备触发', '1004': '脱下装备触发', '1006': '吃物品触发', '1011': '点击NPC执行耗时', '5016': '小精灵拾取', '3014': '攻击触发', '10101': '攻击触发', '10049': '加经验' }; const temp = val.reduce((acc, curr) => { const textinfo = curr.substring(26); const LogTime = curr.substring(1, 11); if (textinfo.indexOf('MsgTime') !== -1) { const SubTextList = textinfo.split(' '); SubTextList.forEach((SubText) => { const i = SubText.lastIndexOf('-'); if (i !== -1 && SubText.includes('MsgTime')) { const OutTime = SubText.substr(i + 1, SubText.length); const MsgTimeId = SubText.substring(7, i); let Remarks = Jsoninfo[MsgTimeId];
if (Remarks == null) {
Remarks = '未知行为';
}
if (OutTime > 31) {
const Str = JSON.stringify(allinfo[LogTime]);
if (Str === undefined) {
allinfo[LogTime] = {[MsgTimeId]: {Num: 1, Maxnumber: OutTime}};
} else {
const objt = allinfo[LogTime];
const Str_t = JSON.stringify(objt[MsgTimeId]);
if (Str_t === undefined) {
objt[MsgTimeId] = {Num: 1, Maxnumber: OutTime};
allinfo[LogTime] = objt;
} else {
const Num = objt[MsgTimeId].Num + 1;
const Maxnumber = objt[MsgTimeId].Maxnumber > OutTime ? objt[MsgTimeId].Maxnumber : OutTime;
objt[MsgTimeId].Num = Num;
objt[MsgTimeId].Maxnumber = Maxnumber;
allinfo[LogTime] = objt;
}
}
acc.push({date: `${LogTime}`, name: `${SubText}`, address: `${Remarks}`});
}
}
});
}
return acc;
}, []); console.log(allinfo); return temp; }
原文地址: https://www.cveoy.top/t/topic/m0SG 著作权归作者所有。请勿转载和采集!