Javascript TaffyDB jquery对于每个循环运行两次

Javascript TaffyDB jquery对于每个循环运行两次,javascript,jquery,single-page-application,taffydb,Javascript,Jquery,Single Page Application,Taffydb,因此,我正在一本书中的一个项目中工作,在这个项目中,TaffyDB被用来创建一个人物集合。该项目是一个简单的聊天室,用户列表在窗口中生成为在线用户的html列表。目前我正在使用虚假数据进行测试,我的每个循环(在jquery中)都有一个正常工作的循环,在屏幕上打印五个“化身”。然而,我的每个循环打印在线用户两次:为什么?这两个循环使用完全相同的设置,但第二个循环运行两次 适用于每种工作方式的: people_db().each(function(person,idx){ var c

因此,我正在一本书中的一个项目中工作,在这个项目中,TaffyDB被用来创建一个人物集合。该项目是一个简单的聊天室,用户列表在窗口中生成为在线用户的html列表。目前我正在使用虚假数据进行测试,我的每个循环(在jquery中)都有一个正常工作的循环,在屏幕上打印五个“化身”。然而,我的每个循环打印在线用户两次:为什么?这两个循环使用完全相同的设置,但第二个循环运行两次

适用于每种工作方式的:

people_db().each(function(person,idx){
        var class_list;
        if( person.get_is_anon() ){ return true; }
        class_list = ['spa-avtr-box'];

        if( person.id === chatee.id ){
            class_list.push('spa-x-is-user');
        }

        $box = $('<div/>')
            .addClass(class_list.join(' '))
            .css( person.css_map )
            .attr('data-id', String(person.id) )
            .prop( 'title', spa.util_b.encodeHtml(person.name) )
            .text( person.name )
            .appendTo( $nav );
    });
people\u db()。每个函数(person,idx){
风险等级清单;
如果(person.get_是_anon()){return true;}
类别列表=['spa-avtr-box'];
if(person.id==chatee.id){
类别列表推送(“spa-x-is-user”);
}
$box=$('')
.addClass(class_list.join(“”))
.css(person.css_映射)
.attr('data-id',字符串(person.id))
.prop('title',spa.util_b.encodeHtml(person.name))
.text(person.name)
.附页($nav);
});
运行两次的循环:

people_db().each(function(person,idx){

        var select_class = '';

        console.log(person);

        if( person.get_is_anon() || person.get_is_user() ) {
            return true;
        }

        if( chatee && chatee.id === person.id ){
            select_class = 'spa-x-select';
        }

        list_html
            += '<div class="spa-chat-list-name'
            + select_class + '" data-id="' + person.id + '">'
            + spa.util_b.encodeHtml(person.name) + '</div>';
    });

    if( !list_html ){
        list_html = String()
        + '<div class="spa-chat-list-note">'
        + 'To chat alone is the fate of all great souls...<br><br>'
        + 'No one is online'
        + '</div>';

        clearChat();
    }
    jqueryMap.$list_box.html(list_html);
}
people\u db()。每个函数(person,idx){
变量选择_类=“”;
控制台日志(个人);
if(person.get_是_anon()| | person.get_是_user()){
返回true;
}
if(chatee&&chatee.id==person.id){
选择_类='spa-x-select';
}
列表(html)
+= ''
+spa.util_b.encodeHtml(person.name)+'';
});
如果(!list_html){
list_html=String()
+ ''
+“独自聊天是所有伟大灵魂的命运……”
+“没有人在线”
+ '';
clearChat();
}
jqueryMap.$list\u box.html(list\u html);
}

知道我做错了什么吗?我已经详细地研究了我的代码的其余部分,我不会调用它两次,我几乎可以肯定它必须与循环有关

我首先要确保你不会打两次电话。 如果你看一下控制台,会吗

console.log(person);
打印两次? 如果是这样的话,解除任何呼叫的绑定

people_db().each(function(person,idx){
在你绑它之前