Javascript 分拣工作手动进行,但不使用";onclick";功能

Javascript 分拣工作手动进行,但不使用";onclick";功能,javascript,html,arrays,sorting,Javascript,Html,Arrays,Sorting,我有一个名字列表,我想根据他们有多少个点来排序,它默认设置为0,每次我按下一个按钮,它都会向那个特定的名字添加一个点,但不会将它们排在第一位,如果我在JS列表中手动添加点,它可以正常工作,但在我使用按钮时不会。以下是我尝试过的: let字符=[ {name:document.getElementById(“名称1”).textContent,点:0}, {name:document.getElementById(“名称2”).textContent,点:0}, {name:document.g

我有一个名字列表,我想根据他们有多少个点来排序,它默认设置为
0
,每次我按下一个按钮,它都会向那个特定的名字添加一个点,但不会将它们排在第一位,如果我在
JS
列表中手动添加点,它可以正常工作,但在我使用按钮时不会。以下是我尝试过的:

let字符=[
{name:document.getElementById(“名称1”).textContent,点:0},
{name:document.getElementById(“名称2”).textContent,点:0},
{name:document.getElementById(“名称3”).textContent,点:0}
];
功能选择(按钮){
const buttonCharacterObject=characters.find(obj=>obj.name==button.textContent);
buttonCharacterObject.points+=1;
console.log(字符)
}
常量排序=字符排序((a,b)=>(a.points
约翰
马丁
山姆

只需将排名也放入函数中,控制台就会输出排名字符

let字符=[
{name:document.getElementById(“名称1”).textContent,点:0},
{name:document.getElementById(“名称2”).textContent,点:0},
{name:document.getElementById(“名称3”).textContent,点:0}
];
功能选择(按钮){
const buttonCharacterObject=characters.find(obj=>obj.name==button.textContent);
buttonCharacterObject.points+=1;
常量排序=字符排序((a,b)=>(a.points
约翰 马丁 山姆
增加点数后,需要在
choice()
方法中进行排序

请尝试以下操作:

function choice (button) {
   const buttonCharacterObject = characters.find(obj => obj.name === button.textContent);
   buttonCharacterObject.points += 1;

   characters.sort((a, b) => (a.points < b.points ? 1 : -1));

   console.log(characters)
}
功能选择(按钮){
const buttonCharacterObject=characters.find(obj=>obj.name==button.textContent);
buttonCharacterObject.points+=1;
字符排序((a,b)=>(a.points
尝试过,但console.log(排名);也需要在函数中,谢谢您的帮助