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数组中,您使用的是常规数组。我们称之为“关联数组”、“哈希”或“对象”。您想按照我在回答中说的做吗