Javascript 如何根据频率对数组中的键进行排序
我的提交按钮终于起作用了。然而,它并没有计算结果中的所有选票。如何使用提交按钮对所有投票进行排序 HTML:Javascript 如何根据频率对数组中的键进行排序,javascript,jquery,Javascript,Jquery,我的提交按钮终于起作用了。然而,它并没有计算结果中的所有选票。如何使用提交按钮对所有投票进行排序 HTML: 电影列表 我最喜欢的电影 进入 精选电影: 你是最好的电影: 提交 结果 Javascript: $(document).ready(function() { var films = []; // with working vote button $("#enter").click(function () { var movie = $("#m
电影列表
我最喜欢的电影
进入
精选电影:
你是最好的电影:
提交
结果
Javascript:
$(document).ready(function() {
var films = [];
// with working vote button
$("#enter").click(function () {
var movie = $("#movie").val();
var $btn = $('<button />', {
id: "vote",
type: "button",
text: "Vote",
value: movie,
click: function(){
var vote = this.value;
$("#best").append('<p>'+vote+'</p>');
films.push(vote);
}
});
var $p = $('<p />');
$p.append($btn, " ", movie);
$p.appendTo("#list");
});
});
$(文档).ready(函数(){
var=[];
//带工作投票按钮
$(“#输入”)。单击(函数(){
var movie=$(“#movie”).val();
变量$btn=$(''{
id:“投票”,
键入:“按钮”,
案文:“投票”,
价值观:电影,
单击:函数(){
var vote=该值;
$(“#最佳”)。追加(“”+投票+”);
电影。推送(投票);
}
});
var$p=$(“”);
$p.append($btn,“,电影);
$p.appendTo(“列表”);
});
});
问题就在这里:
此代码应允许“提交”按钮在“您的最佳影片”下选择列出的影片,并按照投票顺序将其排列在“结果”下的第三个列表中
$("#submit").click(function () {
var ballot = {};
for (var i = 1; i < films.length; i++) {
var key = films[i];
ballot[key] = (ballot[key] || 0) + 1;
}
var elect = [];
for (key in ballot) elect.push({key: key, freq: ballot[key]});
elect.sort(function(a,b){return b.freq - a.freq});
console.log(elect);
for (var i = 0; i < elect.length; i++){
console.log(elect[i].key);
$("#results").append('<p>' + elect[i].key + '</p>');
}
});
$(“#提交”)。单击(函数(){
var-ballot={};
对于(var i=1;i);
}
});
如有任何建议或想法,将不胜感激 $(“#提交”)。单击(函数(){
$("#submit").click(function () {
var ballot = {};
for ( var i = 0; i < films.length; i++) {
var key = films[i];
ballot[key] = (ballot[key] || 0) + 1;
}
var elect = [];
for (key in ballot) elect.push({key: key, freq: ballot[key]});
elect.sort(function(a,b){return b.freq - a.freq});
console.log(elect);
for (var j = 0; j < elect.length; j++){
console.log(elect[j].key);
$("#results").append('<p>' + elect[j].key + '</p>');
}
var-ballot={};
对于(var i=0;i”);
}
它是否显示任何错误,因为我认为您有错误。我看到您为(var I=1;I
,但您没有这样做var films=document.querySelector(.flims”)
。没有错误。只是没有计算大多数选票,而不是全部选票。var films行会去哪里?好吧,那是因为你做了电影。长度
当你没有所谓的电影时。电影数组就在$(“#enter”)上方。单击(函数(){如果是这样的话,你应该把错误的最后一部分放在里面,因为这样看起来它是分开的。
$("#submit").click(function () {
var ballot = {};
for ( var i = 0; i < films.length; i++) {
var key = films[i];
ballot[key] = (ballot[key] || 0) + 1;
}
var elect = [];
for (key in ballot) elect.push({key: key, freq: ballot[key]});
elect.sort(function(a,b){return b.freq - a.freq});
console.log(elect);
for (var j = 0; j < elect.length; j++){
console.log(elect[j].key);
$("#results").append('<p>' + elect[j].key + '</p>');
}