Javascript 根据最大值和最小值过滤结果

Javascript 根据最大值和最小值过滤结果,javascript,Javascript,我在JavaScript中有一个函数,它比较两个SQL查询结果的两个值 var query1 = {{repair_semestre1}}; var query2 = {{repair_semestre2}}; var data = {}; [query1, query2].forEach(function (query, semester) { query.Client.forEach(function(clientId, index) { var client = d

我在JavaScript中有一个函数,它比较两个SQL查询结果的两个值

var query1 = {{repair_semestre1}};
var query2 = {{repair_semestre2}};
var data = {};
[query1, query2].forEach(function (query, semester) {
    query.Client.forEach(function(clientId, index) {
        var client = data[clientId] = data[clientId] || {};
        var clientArt = client[query.LRU[index]] = client[query.LRU[index]] || [0, 0];
        clientArt[semester] = query.round[index];
    });
});

// Now report on that data
var output = [];
for (client in data) {
    for (article in data[client]) {
        var turnovers = data[client][article];
              output.push(formatName(client,article,turnovers));
        }
}

          return {
             output: output 
            };
function formatName(client,article,turnover,a) {

    return("Client: " + client + ", LRU.: " + article 
                  + ", semester t/o: " + turnovers
                  + " " + (percent = turnovers[0] === 0 ?
                               turnovers[1] : 
                              ((turnovers[1]-turnovers[0]) /turnovers[0])*100

        ));

}

output.sort(function (a, b) {
    return b.percent - a.percent;
});

return("top", data.slice(0, 10));
return("bottom", data.slice(-10));    
return(data);
当我改变我的函数时,通过影响一个变量对结果进行排序,我的变量转换变得不可识别

像这样:

function formatName(client,article,turnover,a) {

    return("Client: " + client + ", LRU.: " + article 
                  + ", semester t/o: " + turnovers
                  + " " + (a.percent = a.turnovers[0] === 0 ?
                                       a.turnovers[1] : 
                              ((a.turnovers[1]-a.turnovers[0]) /a.turnovers[0])*100

        ));

}
请问我如何解决这个问题

这是此函数结果的一个示例:

"Client: 347, LRU.: ECP, semester t/o: 1026,-2510 -344.63937621832355"
"Client: 347, LRU.: NSS, semester t/o: 6259,0 -100"
"Client: 394, LRU.: ATSU, semester t/o: 16951,16951 0"
"Client: 394, LRU.: FCPC, semester t/o: 3178,3315 4.310887350534927"
"Client: 394, LRU.: FCSC, semester t/o: 2536,0 -100"
"Client: 394, LRU.: SDAC, semester t/o: 7391,0 -100"
"Client: 407, LRU.: RADOME, semester t/o: 4611,-927 -120.10409889394926"
"Client: 417, LRU.: FWC, semester t/o: 0,3965 3965"
"Client: 417, LRU.: SDAC, semester t/o: 601,601 0"
"Client: 446, LRU.: MFC, semester t/o: 4232,4063 -3.993383742911153"
"Client: 450, LRU.: ATSU, semester t/o: 892,0 -100"
"Client: 450, LRU.: FWC, semester t/o: 918,0 -100"
"Client: 467, LRU.: ATSU, semester t/o: 887,0 -100"
"Client: 467, LRU.: ECP, semester t/o: 2500,2616 4.64"
"Client: 467, LRU.: FCPC, semester t/o: 3918,3539 -9.673302705461971"
"Client: 467, LRU.: FCSC, semester t/o: 5254,7564 43.96650171298059"
"Client: 467, LRU.: FWC, semester t/o: 2592,2089 -19.405864197530864"
"Client: 467, LRU.: RADOME, semester t/o: 7404,16815 127.10696920583469"
"Client: 467, LRU.: SDAC, semester t/o: 1310,1108 -15.419847328244273"
"Client: 512, LRU.: MFC, semester t/o: 2785,2128 -23.590664272890486"
"Client: 540, LRU.: ATSU, semester t/o: 25534,0 -100"
"Client: 554, LRU.: ECP, semester t/o: 750,750 0"
"Client: 554, LRU.: FWC, semester t/o: 954,1161 21.69811320754717"
"Client: 554, LRU.: SDAC, semester t/o: 3848,3848 0"
"Client: 554, LRU.: FSA RCI, semester t/o: 0,10826 10826"
"Client: 554, LRU.: SEC, semester t/o: 0,901 901"
"Client: 554, LRU.: Unspecified, semester t/o: 0,428 428"
"Client: 594, LRU.: ATSU, semester t/o: 2059,2402 16.658572122389508"
"Client: 594, LRU.: ECP, semester t/o: 1957,1931 -1.3285641287685233"
"Client: 594, LRU.: FCPC, semester t/o: 4281,3174 -25.858444288717592"
"Client: 594, LRU.: FCSC, semester t/o: 2870,2552 -11.0801393728223"
"Client: 594, LRU.: FSA RCI, semester t/o: 3081,4477 45.309964297306074"
"Client: 594, LRU.: FWC, semester t/o: 5795,6959 20.0862812769629"
"Client: 594, LRU.: IMA EYY, semester t/o: 6348,0 -100"

您可以按百分比值对数据进行排序,只取前10个结果或后10个结果

函数getPercentarray{ 返回数组[0]==0 ?阵列[1] :数组[1]-数组[0]*100/数组[0]; } 功能formatNameclient、文章、营业额{ 返回客户端:+Client+ ,LRU.:+文章+ ,学期t/o:+营业额+ +换手率; } var数据=[{客户:347,文章:'ECP',营业额:[1026,-2510]},{客户:347,文章:'NSS',营业额:[6259,0]},{客户:394,文章:'ATSU',营业额:[1695116951]},{客户:394,文章:'FCPC',营业额:[31783315]},{客户:394,文章:'FCSC',营业额:[2536,0]},{客户:394,文章:'SDAC',营业额:[7391,0]},{客户:407,文章:'RADOME',营业额:[4611,-927]},{客户:417,文章:'FWC',营业额:[03965]},{客户:417,文章:'SDAC',营业额:[601601]},{客户:446,文章:'MFC',营业额:[42324063]},{客户:450,文章:'ATSU营业额:[892,0]},{客户:450,文章:'FWC营业额:[918,0]},{客户:467,文章:'ATSU',营业额:[887,0]},{客户:467,文章:'ECP',营业额:[25002616]},{客户:467,文章:'FCPC',营业额:[39183539]},{客户:467,文章:'FCSC',营业额:[52547564]},{客户:467,文章:'FWC',营业额:[25922089]},{客户:467,文章:'RADOME营业额:[[740416815]},{客户:467,文章:'SDAC',营业额:[13101108]},{客户:512,文章:'MFC',营业额:[27852128]},{客户:540,文章:'ATSU',营业额:[25534,0]},{客户:554,文章:'ECP',营业额:[750750]},{客户:554,文章:'FWC',营业额:[954161]},{客户:554,文章:'SDAC',营业额:[38483848]},{客户:554,文章:'FSA RCI',营业额:[0,10826]},{客户:554,文章:'SEC',营业额:[0,901]},{客户:554,文章:'Unspecified',营业额:[0,428]},{客户:594,文章:'ATSU营业额:[20592402]},{客户:594,文章:'ECP',营业额:[19571931]},{客户:594,文章:'FCPC',营业额:[42813174]},{客户:594,文章:'FCSC',营业额:[28702552]},{客户:594,文章:'FSA RCI',营业额:[30814477]},{客户:594,文章:'FWC',营业额:[57956959]},{客户:594,文章:'IMA EYY',营业额:[6348,0]}; data.foreacho函数{ o、 百分比=getPercento.营业额; }; data.sort函数a、b{ 回报率b.percent-a.percent; }; console.log'top',data.0,10; console.log'bottom',data.slice-10; console.logdata.mapo函数{ 返回格式名称o.client、o.article、o.turnsovers; }; 控制台日志数据;
.作为控制台包装{最大高度:100%!重要;顶部:0;}为什么不使用SQL进行过滤?@Matus我需要你的帮助,我不知道该怎么做。谢谢你。@NinaScholz我不应该使用SQL进行过滤,因为我的想法是计算每学期S1和S2中每篇文章的每位客户的平均营业额,然后我应该计算变化量,并在每个感官中取前10位客户。谢谢ou.@vero看起来你知道你需要做什么:我只想让前10位营业额增加较多的客户和前10位营业额减少较多的客户,将每个结果记录在变量中……只要开始,自己编写尽可能多的代码,然后询问有关该代码的问题。你将有更好的机会如果得到好的答案+你会学到更多。你可以用output.pushformatNameclient,article,turnsovers替换output.push{client:client,article:article,turnsovers:turnsors;哪一组需要最大值?我试图影响我的结果的变量,例如var a=turnsovers[1]-turnsovers[0]/turnsovers[0]*100排序。你能告诉我这个变量如何影响我的结果吗?谢谢。@vero,对不起,我不明白这个问题。在我的示例中,你的数组数据是数组输出,我通过调用函数formatName来填充它。所以当我用输出替换它,并删除函数formatName的代码时,它变成inknowing,因为我我编辑了此函数的输出。请@Nina Scholz如何根据您的解决方案更改我的函数formatName。非常感谢。我根据您的解决方案编辑了上面的问题。感谢您的帮助。您在函数参数和使用转换方面有一个转换。