Javascript 查找数组中的所有低位数字

Javascript 查找数组中的所有低位数字,javascript,express,Javascript,Express,我有一个应用程序,通过选择下拉框输入十个问题的值。每个下拉菜单的值为1-5。当用户单击submit按钮时,我将输入框中的所有值存储在一个对象中,然后将它们发送到$.post请求路由。在服务器端的这个post请求路由中,我获取发送到服务器的post数据,并循环通过一个“朋友”数组,将每个分数数组减去用户选择的分数。我需要记录哪个朋友的差异最小并将其发回,但我不知道如何发回多个可能具有相同最低数量的“朋友” frontside.js $('#submit').on('click', function

我有一个应用程序,通过选择下拉框输入十个问题的值。每个下拉菜单的值为1-5。当用户单击submit按钮时,我将输入框中的所有值存储在一个对象中,然后将它们发送到$.post请求路由。在服务器端的这个post请求路由中,我获取发送到服务器的post数据,并循环通过一个“朋友”数组,将每个分数数组减去用户选择的分数。我需要记录哪个朋友的差异最小并将其发回,但我不知道如何发回多个可能具有相同最低数量的“朋友”

frontside.js

$('#submit').on('click', function(){


            var newProfile = {
                name: $('#name').val().trim(),
                photo: $('#link').val().trim(),
                scores: []
            };

            for(var x = 0; x < questions.length; x++){
                var num = parseInt($('select[name = "q' + (x+1) + '"]').val());
                newProfile.scores.push(num);
            }

            alert("Adding profile");

            var currentURL = window.location.origin;

            $.post(currentURL + "/api/friends", newProfile).done(function(data){
                console.log('data', data);
            });
试试这个

// holds the minimum difference
var minDiff =  Number.MAX_SAFE_INTEGER;
// holds the list of friends with minimum difference
var minDiffFriends = [];
for(var x = 0; x < friends.candidates.length; x++){
            // variable to hold sum of differences
            var scoreSum = 0
            for(var i = 0; i < friends.candidates[x].scores.length; i++){

                var result = person.scores[i] - friends.candidates[x].scores[i];

                 if(result < 0){
                    result = result * (-1);
                 }
                 scoreSum += result;
            }

            if(scoreSum < minDiff) {
                minDiff = scoreSum ;
                //clear previous array
                minDiffFriends.length = 0;
                //add the current friend information
                minDiffFriends.push(friends.candidates[x]);
            }
            else if(scoreSum ==minDiff) {
                // store friend information 
                minDiffFriends.push(friends.candidates[x]);
            }
}
//保持最小的差异
var minDiff=Number.MAX\u SAFE\u整数;
//保存差异最小的好友列表
var mindiffriends=[];
for(var x=0;x
按差异排序,然后从具有相同差异的末尾提取所有差异。差异数组是一个临时数组,用于保存用户分数数组和朋友[x]中每个减去的数字的差异。分数数组,完成后需要重置,否则将添加到下一个人的差异分数中
exports.candidates = [
    {

        scores:[5,1,4,4,5,1,2,5,4,1]
    },
    {

        scores:[4,2,5,1,3,2,2,1,3,2]
    },
    {

        scores:[5,2,2,2,4,1,3,2,5,5]
    },
    {

        scores:[3,3,4,2,2,1,3,2,2,3]
    },
    {

        scores:[4,3,4,1,5,2,5,3,1,4]
    },
    {

        scores:[4,4,2,3,2,2,3,2,4,5]
    },
    {

        scores:[2,3,3,3,3,3,3,3,3,3]
    },
    {

        scores:[5,2,1,1,5,2,1,1,4,4]
    }];
// holds the minimum difference
var minDiff =  Number.MAX_SAFE_INTEGER;
// holds the list of friends with minimum difference
var minDiffFriends = [];
for(var x = 0; x < friends.candidates.length; x++){
            // variable to hold sum of differences
            var scoreSum = 0
            for(var i = 0; i < friends.candidates[x].scores.length; i++){

                var result = person.scores[i] - friends.candidates[x].scores[i];

                 if(result < 0){
                    result = result * (-1);
                 }
                 scoreSum += result;
            }

            if(scoreSum < minDiff) {
                minDiff = scoreSum ;
                //clear previous array
                minDiffFriends.length = 0;
                //add the current friend information
                minDiffFriends.push(friends.candidates[x]);
            }
            else if(scoreSum ==minDiff) {
                // store friend information 
                minDiffFriends.push(friends.candidates[x]);
            }
}