Javascript for 循环返回 "copy"作为值

标签 javascript jquery

我有一个开始为空的数组 - var currentChatSessions = [] ;

然后填充 - currentChatSessions[privateSessionID]=targetUser; (这是一个字符串,例如'myName')

我有一个遍历数组的函数 -

function checkExisting(from){//check for existing chats with that user
        var oldId=0;
//*         
        for(var index in currentChatSessions) { 
            console.log('checkExisting index: ' + index);
            console.log('checkExisting data: ' + currentChatSessions[index]);

            if (currentChatSessions[index] == from){
                oldId=index;
                console.log('check Existing: ' + oldId);
            }
            break;

        }
//*/        
        console.log('check existing oldId: ' + oldId);
        return oldId;
    };

并将其记录到控制台 - checkExisting index: copycheckExisting data: function (){var i=new Array();for(var I=0,l=this.length;I<l;I++){i[I]=this[I]}return i}

我知道字符串是作为变量传入的,因为我在其他地方调用它们,并返回正确的字符串。

为什么它会返回一个函数而不是一个字符串??

感谢帮助

最佳答案

for (var x in array) 将遍历设置为可枚举的数组上的所有属性,而不仅仅是数组元素。这可以包括方法,其值(value)将是可以解释您所看到的内容的代码。我猜你可能正在使用一些代码(库或代码)以一种使它们可枚举的方式将方法添加到你的数组。

您应该仅按从 0.length - 1 的索引迭代数组。有几种方法可以做到这一点,但经典的方法是:

for (var i = 0; i < array.length; i++)

关于Javascript for 循环返回 "copy"作为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12257550/

相关文章:

javascript - 寻找最近的前一里

javascript - 从列表中仅检索一个表行

javascript - 从函数内部访问对象属性

javascript - pageX 和 pageY 不起作用,但 offset 起作用

javascript - 我需要使用用户的输入动态更新 iframe

javascript - 仅安全cookie通过控制台中的$.cookie返回NULL?

仅限 Javascript 的 DOM 树遍历 - DFS 和 BFS?

php - jQuery Datepicker Beforeshowday - Ajax 返回不可用日期数组

jquery - return false 仅在答案正确时才有效?

jquery - 按 data-rel 顺序应用相同的函数