Javascript 如何在不使用sort()的情况下获取对象数组中的最高值

Javascript 如何在不使用sort()的情况下获取对象数组中的最高值,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一组需要执行任务的对象 如果不使用sort()方法,我需要根据投票给特朗普和希拉里的人对数组中的对象进行排序 function sorting() { console.log("Lenght : " + states.length); let TopVotedToTrump: typeof states; let TopVotedToHillary: typeof states; TopVotedToTrump.push(states[0]);

我有一组需要执行任务的对象

如果不使用
sort()
方法,我需要根据投票给特朗普和希拉里的人对数组中的对象进行排序

    function sorting() {
    console.log("Lenght : " + states.length);

    let TopVotedToTrump: typeof states;
    let TopVotedToHillary: typeof states;
    TopVotedToTrump.push(states[0]);
    for (let i: number = 0; i < states.length-1 ; i++) {
        for (let j: number = i + 1; j < states.length; j++) {
            if ((states[i].votesForTrump < states[j].votesForTrump) || (states[i].votesForTrump == states[j].votesForTrump && states[i].votesForHillary < states[j].votesForHillary))
            {
                console.log(states[i].votesForTrump + " swapped with " + states[j].votesForTrump);
                let temp = states[i];
                states[i] = states[j]
                states[j] = temp
            }
            if ((states[i].votesForHillary < states[j].votesForHillary)) {
                let temp = states[i];
                states[i] = states[j]
                states[j] = temp
            }
        }

        if (TopVotedToTrump.indexOf(states[i]) != -1) {
            TopVotedToTrump.push(states[i]);
        }
    }

    //for (let i of states) {
    //    console.log("{" + " State: " + i.stateName + " Population: " + i.population + " Votes For Hillary: " + i.votesForHillary + " Votes For Trump: "+ i.votesForTrump + "}");
    //}
    //console.log("Result : " + JSON.parse(states.toString()));
}
此外,我需要找到投票给特朗普最多的五个州,以及投票给希拉里最多的五个州

    function sorting() {
    console.log("Lenght : " + states.length);

    let TopVotedToTrump: typeof states;
    let TopVotedToHillary: typeof states;
    TopVotedToTrump.push(states[0]);
    for (let i: number = 0; i < states.length-1 ; i++) {
        for (let j: number = i + 1; j < states.length; j++) {
            if ((states[i].votesForTrump < states[j].votesForTrump) || (states[i].votesForTrump == states[j].votesForTrump && states[i].votesForHillary < states[j].votesForHillary))
            {
                console.log(states[i].votesForTrump + " swapped with " + states[j].votesForTrump);
                let temp = states[i];
                states[i] = states[j]
                states[j] = temp
            }
            if ((states[i].votesForHillary < states[j].votesForHillary)) {
                let temp = states[i];
                states[i] = states[j]
                states[j] = temp
            }
        }

        if (TopVotedToTrump.indexOf(states[i]) != -1) {
            TopVotedToTrump.push(states[i]);
        }
    }

    //for (let i of states) {
    //    console.log("{" + " State: " + i.stateName + " Population: " + i.population + " Votes For Hillary: " + i.votesForHillary + " Votes For Trump: "+ i.votesForTrump + "}");
    //}
    //console.log("Result : " + JSON.parse(states.toString()));
}
以下是阵列:

var states = [{
  stateName: "Delaware",
  votesForHillary: 14,
  votesForTrump: 123,
  population: 925749
}, {
  stateName: "Pennsylvania",
  votesForHillary: 240,
  votesForTrump: 1,
  population: 12773801
}, {
  stateName: "New Jersey",
  votesForHillary: 124,
  votesForTrump: 15,
  population: 8899339
}, {
  stateName: "Georgia",
  votesForHillary: 12,
  votesForTrump: 353,
  population: 9992167
}, {
  stateName: "Connecticut",
  votesForHillary: 23,
  votesForTrump: 135,
  population: 3596080
}, {
  stateName: "Massachusetts",
  votesForHillary: 50,
  votesForTrump: 53,
  population: 6692824
}, {
  stateName: "Maryland",
  votesForHillary: 424,
  votesForTrump: 23,
  population: 600000
}, {
  stateName: "South Carolina",
  votesForHillary: 0,
  votesForTrump: 1,
  population: 4774839
}, {
  stateName: "New Hampshire",
  votesForHillary: 34,
  votesForTrump: 14,
  population: 1323459
}, {
  stateName: "Virginia",
  votesForHillary: 233,
  votesForTrump: 153,
  population: 8260405
}, {
  stateName: "New York",
  votesForHillary: 253,
  votesForTrump: 15,
  population: 19651127
}, {
  stateName: "North Carolina",
  votesForHillary: 5,
  votesForTrump: 404,
  population: 600000
}, {
  stateName: "Rhode Island",
  votesForHillary: 4,
  votesForTrump: 6,
  population: 1051511
}, {
  stateName: "Vermont",
  votesForHillary: 23,
  votesForTrump: 54,
  population: 626630
}, {
  stateName: "Kentucky",
  votesForHillary: 46,
  votesForTrump: 647,
  population: 4395295
}, {
  stateName: "Tennessee",
  votesForHillary: 44,
  votesForTrump: 600,
  population: 6495978
}, {
  stateName: "Ohio",
  votesForHillary: 35,
  votesForTrump: 45,
  population: 11570808
}, {
  stateName: "Louisiana",
  votesForHillary: 65,
  votesForTrump: 56,
  population: 4625470
}, {
  stateName: "Indiana",
  votesForHillary: 21,
  votesForTrump: 12,
  population: 6570902
}, {
  stateName: "Mississippi",
  votesForHillary: 340,
  votesForTrump: 151,
  population: 2991207
}, {
  stateName: "Illinois",
  votesForHillary: 114,
  votesForTrump: 53,
  population: 12882135
}, {
  stateName: "Alabama",
  votesForHillary: 35,
  votesForTrump: 1351,
  population: 4833722
}, {
  stateName: "Maine",
  votesForHillary: 1,
  votesForTrump: 2,
  population: 1328302
}, {
  stateName: "Missouri",
  votesForHillary: 240,
  votesForTrump: 15,
  population: 6044171
}, {
  stateName: "Arkansas",
  votesForHillary: 53,
  votesForTrump: 153,
  population: 2959373
}, {
  stateName: "Michigan",
  votesForHillary: 35,
  votesForTrump: 647,
  population: 600000
}, {
  stateName: "Florida",
  votesForHillary: 46,
  votesForTrump: 474,
  population: 19552860
}, {
  stateName: "Texas",
  votesForHillary: 0,
  votesForTrump: 0,
  population: 26448193
}, {
  stateName: "Iowa",
  votesForHillary: 436,
  votesForTrump: 123,
  population: 3090416
}, ];
下面是我使用sort()方法的方法

状态.排序(函数(a,b){
返回b.votesForTrump-a.votesForTrump;

});下次,请在寻求帮助之前展示您自己的一些努力

对于您的问题,需要将
map
filter
Math.max
组合使用

var状态=[{
州名:“特拉华”,
希拉里之声:14,
votesForTrump:123,
人口:925749
}, {
州名:“宾夕法尼亚州”,
votesForHillary:240,
votesForTrump:1,
人口:12773801
}, {
州名:“新泽西州”,
votesForHillary:124,
votesForTrump:15,
人口:8899339
}, {
州名:“格鲁吉亚”,
votesForHillary:12,
votesForTrump:353,
人口:9992167
}, {
州名:“康涅狄格州”,
votesForHillary:23,
votesForTrump:135,
人口:3596080
}, {
州名:“马萨诸塞州”,
votesForHillary:50,
votesForTrump:53,
人口:6692824
}, {
州名:“马里兰”,
希拉里之声:424,
votesForTrump:23,
人口:60万
}, {
州名:“南卡罗来纳州”,
希拉里的声音:0,
votesForTrump:1,
人口:4774839
}, {
州名:“新罕布什尔州”,
votesForHillary:34,
votesForTrump:14,
人口:1323459
}, {
州名:“弗吉尼亚”,
votesForHillary:233,
votesForTrump:153,
人口:8260405
}, {
州名:“纽约”,
votesForHillary:253,
votesForTrump:15,
人口:19651127
}, {
州名:“北卡罗来纳州”,
希拉里的声音:5,
votesForTrump:404,
人口:60万
}, {
州名:“罗德岛”,
希拉里的声音:4,
votesForTrump:6,
人口:1051511
}, {
州名:“佛蒙特州”,
votesForHillary:23,
votesForTrump:54,
人口:626630
}, {
州名:“肯塔基州”,
votesForHillary:46,
votesForTrump:647,
人口:4395295
}, {
州名:“田纳西州”,
votesForHillary:44,
votesForTrump:600,
人口:6495978
}, {
州名:“俄亥俄州”,
votesForHillary:35,
votesForTrump:45,
人口:11570808
}, {
州名:“路易斯安那州”,
votesForHillary:65,
votesForTrump:56,
人口:4625470
}, {
州名:“印第安纳州”,
votesForHillary:21,
votesForTrump:12,
人口:6570902
}, {
州名:“密西西比”,
votesForHillary:340,
votesForTrump:151,
人口:2991207
}, {
州名:“伊利诺伊州”,
votesForHillary:114,
votesForTrump:53,
人口:12882135
}, {
州名:“阿拉巴马州”,
votesForHillary:35,
votesForTrump:1351,
人口:4833722
}, {
州名:“缅因州”,
希拉里的声音:1,
votesForTrump:2,
人口:1328302
}, {
州名:“密苏里州”,
votesForHillary:240,
votesForTrump:15,
人口:6044171
}, {
州名:“阿肯色州”,
votesForHillary:53,
votesForTrump:153,
人口:2959373
}, {
州名:“密歇根州”,
votesForHillary:35,
votesForTrump:647,
人口:60万
}, {
州名:“佛罗里达”,
votesForHillary:46,
votesForTrump:474,
人口:19552860
}, {
州名:“德克萨斯州”,
希拉里的声音:0,
votesForTrump:0,
人口:26448193
}, {
州名:“爱荷华州”,
votesForHillary:436,
votesForTrump:123,
人口:3090416
}, ];
让trumpStates=states.filter((data)=>{returndata[“votesForTrump”]>data[“votesForHillary”]});
设hillaryStates=states.filter((data)=>{returndata[“votesForTrump”]AllTrumpVoces.push(数据[“votesForTrump]”);
hillaryStates.map((数据)=>allHillaryVotes.push(数据[“votesForHillary”]);
让MaxTrumpVoces=Math.max(…AllTrumpVoces);
设maxillaryvotes=Math.max(…allHillaryVotes);
console.log(所有HillaryVotes)
让maxTrumpState=TrumpState.filter((数据)=>{
if(data[“votesForTrump”]==MaxTrump)返回数据;
});
设maxHillaryState=HillaRystate.filter((数据)=>{
如果(数据[“votesForHillary”]==maxHillaryVotes)返回数据;
});

console.log(maxHillaryState,maxTrumpState)
下面的函数将有助于对内容进行排序,您也可以进行同样的排序,以获得希拉里在大多数州的选票

    function sorting() {
    console.log("Lenght : " + states.length);

    let TopVotedToTrump: typeof states;
    let TopVotedToHillary: typeof states;
    TopVotedToTrump.push(states[0]);
    for (let i: number = 0; i < states.length-1 ; i++) {
        for (let j: number = i + 1; j < states.length; j++) {
            if ((states[i].votesForTrump < states[j].votesForTrump) || (states[i].votesForTrump == states[j].votesForTrump && states[i].votesForHillary < states[j].votesForHillary))
            {
                console.log(states[i].votesForTrump + " swapped with " + states[j].votesForTrump);
                let temp = states[i];
                states[i] = states[j]
                states[j] = temp
            }
            if ((states[i].votesForHillary < states[j].votesForHillary)) {
                let temp = states[i];
                states[i] = states[j]
                states[j] = temp
            }
        }

        if (TopVotedToTrump.indexOf(states[i]) != -1) {
            TopVotedToTrump.push(states[i]);
        }
    }

    //for (let i of states) {
    //    console.log("{" + " State: " + i.stateName + " Population: " + i.population + " Votes For Hillary: " + i.votesForHillary + " Votes For Trump: "+ i.votesForTrump + "}");
    //}
    //console.log("Result : " + JSON.parse(states.toString()));
}
函数排序(){
console.log(“Lenght:+states.length”);
让TopVotedToTrump:状态类型;
让我们向希拉里致意:国家类型;
topvotedtrump.push(状态[0]);
for(设i:number=0;i
为什么不排序?有原因吗?你试过什么