Javascript for循环返回;“复制”;作为价值

Javascript for循环返回;“复制”;作为价值,javascript,jquery,Javascript,Jquery,我有一个开始为空的数组-var currentChatSessions=[] 然后填充它-currentChatSessions[privateSessionID]=targetUser(这是一个字符串,例如“myName”) 我有一个遍历数组的函数- function checkExisting(from){//check for existing chats with that user var oldId=0; //* for(var in

我有一个开始为空的数组-
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 data:function(){var i=new Array();对于(var i=0,l=this.length;i对于数组,您必须使用另一种循环方式,而不是
对于
中的…:

for(var index=0;index<currentChatSessions.length;index+=1) { /*...*/ }

for(var index=0;index对于数组,您必须使用另一种循环方式,而不是
for…in

for(var index=0;index<currentChatSessions.length;index+=1) { /*...*/ }

for(var index=0;index看起来您真正想要做的是:

var currentChatSessions = {};
注意螺纹接头支架,而不是支架


您可能有一个扩展数组原型的库。当您在对象上执行for in时,它将显示该对象上的所有方法。可能有人正在执行
Array.prototype.something=function(){}所以当你在任何数组上循环使用
for in
时,你会得到这个函数。

看起来你真正想做的是:

var currentChatSessions = {};
注意螺纹接头支架,而不是支架

您可能有一个扩展数组原型的库。当您对一个对象执行for in时,它将显示该对象上的所有方法。可能有人正在执行
Array.prototype.something=function(){};
因此,当您使用
for in
循环任何数组时,您将获得该函数。

for(数组中的变量x)
将迭代设置为可枚举的数组上的所有属性,而不仅仅是数组元素。这可能包括方法,其值将是可以解释所看到内容的代码。我猜您可能正在使用一些代码(库或代码),以使方法可枚举的方式向数组中添加方法

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

for (var i = 0; i < array.length; i++)
for(变量i=0;i
for(数组中的var x)
将迭代数组上设置为可枚举的所有属性,而不仅仅是数组元素。这可能包括方法,这些方法的值将是代码,可以解释您看到的内容。我猜您可能正在使用一些代码(库或代码)这会以可枚举的方式将方法添加到数组中

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

for (var i = 0; i < array.length; i++)
for(变量i=0;i
不要使用
for…在
for数组中,使用常规的
for
。它可能不理解什么是currentChatSessions[index]…使用简单的for循环for(var index=0;indexcan I iterate
(i=0;我也看到了多个在线教程和其他资源用于…in for array。您使用的是常规数组。我们称之为“关联数组”“哈希”或“对象”。您想按照我在回答中所说的做不要使用
for…in
for数组,使用常规
for
。它可能不理解什么是currentChatSessions[索引]…使用一个简单的for循环for(var index=0;indexcan I iterate
)(I=0;我也看到了多个在线教程和其他资源在使用for数组。在for数组中,您使用的是常规数组。我们称之为“关联数组”、“哈希”或“对象”。您想按照我在回答中说的做吗