将名称和金额推送到javascript对象

将名称和金额推送到javascript对象,javascript,object,Javascript,Object,我正在尝试为一个网站创建一个应用程序,用户可以向这个网站上的人汇款。有点像抽搐。所以我想创建一个toplist,但我对使用对象还不熟悉,所以我遇到了一些麻烦,为了更简单地解释我的问题,我在代码中添加了注释 var myvar = []; cb.onTip(function(tip){ // If username already exists in myvar then i want to just increase the amount for this user else if use

我正在尝试为一个网站创建一个应用程序,用户可以向这个网站上的人汇款。有点像抽搐。所以我想创建一个toplist,但我对使用对象还不熟悉,所以我遇到了一些麻烦,为了更简单地解释我的问题,我在代码中添加了注释

var myvar = [];

cb.onTip(function(tip){
  // If username already exists in myvar then i want to just increase the amount for this user else if username does not exist i want to push up the name and amount to myvar
  myvar.push({name: tip.from_user, amount: tip.amount});
}); 

function sendtoplist(user) {
  var msg;
  for(var i = 0; i <= 3; i++) {
    // Here i am trying to create a toplist but i want to sort it by the amount. How can i do this?
    msg += myvar.name + ' ' + myvar.amount+'\n';
  }

  // For some reason this sendNotice returns undefined (probably because i have no idea how to work with objects)
  cb.sendNotice(msg, '', '#000000', '#FFFFFF', 'bold');
  cb.setTimeout(sendtoplist, 30000);
}
cb.setTimeout(sendtoplist, 30000);
var myvar=[];
cb.onTip(功能(提示){
//如果用户名已经存在于myvar中,那么我只想增加该用户的金额;如果用户名不存在,我想将用户名和金额推送到myvar
myvar.push({name:tip.from_user,amount:tip.amount});
}); 
函数sendtoplist(用户){
var-msg;

对于(var i=0;i您知道哪个特定函数不起作用吗? 如果是,它会向您显示哪个错误

您的第一个功能:

//myvar should be already as an array, imported from a database for example
cb.onTip(function(tip){
// If username already exists in myvar then i want to just increase the amount for this user else if username does not exist i want to push up the name and amount to myvar
var personName = {};
personName.name = tip.from_user;
personName.amount = tip.amount;
var userExist = false;
    for (let i=0; i < myvar.length; i++) {
        if (myvar[i].name == personName.name){
            myvar[i].amount += personName.amount;
            userExist = true;
            break;
        }
    }
if (!userExist) {
    myvar.push(personName);
}

}); 
//myvar应该已经作为数组存在,例如从数据库导入
cb.onTip(功能(提示){
//如果用户名已经存在于myvar中,那么我只想增加该用户的金额;如果用户名不存在,我想将用户名和金额推送到myvar
var personName={};
personName.name=tip.from\u用户;
personName.amount=tip.amount;
var userExist=false;
for(设i=0;i
你清楚吗?如果不清楚,请告诉我

对于你的第二个函数,学习一些AngularJS的基础知识,这很简单,在那里你可以使用一个过滤器,也就是你所需要的过滤器,叫做(“orderBy”)

注意
我真的建议你学习一个框架,而不是使用普通的JS。如果你不想学那么多,就学习AngularJS,它一定很容易学。但是如果你认为你想学习一些现代框架,那么学习Angular(需要使用typescript)

您能否更准确地解释您希望代码做什么,以及它目前没有做什么,从而澄清您的问题?尝试发布其他人可以直接复制的代码,并在不需要额外上下文的情况下运行它(在您的情况下,似乎有一个对象“CB”没有解释)。请在问题文本中更精确地解释确切的问题。在您的案例中,似乎存在多个问题:排序数组、返回未定义的函数以及检查用户是否已存在。此“cb”部分是因为我编写应用程序的站点用于使用和API,所以我需要使用cb.onTip(function(){})每当用户发送货币时进行检查。但我希望我的代码将用户名和小费金额添加到myvar数组中。每当用户发送令牌时,该用户的金额将增加(当前金额+新金额)然后我想制作一个toplist并对其进行排序,这样发送最多令牌的成员将在toplist中排名第一。我的问题是,它在聊天中返回“undefined”。我希望这能回答您的所有问题:)谢谢你的帮助。这是一个很好的例子。不幸的是,我的sendtoplist函数仍然返回未定义的。但是无论如何,我制作这个函数的网站使用了API,我认为我无法在那里编写angularjs代码。但是这段代码仍然非常有用。我想我只是没有输出消息correctly@cbbotdev很高兴帮助:)顺便说一句,我正在使用使用多种API的软件上的JS和Angular:)