继续昨天的bug

if(userInfoArray==null)//如果为空
{
userInfoArray=new ArrayCollection();
userInfoArray.addItem(userInfo);
mycookie.clear();
mycookie.data.userInfoArray=userInfoArray;
}
else//不为空
{
for(var i:int=0;i<userInfoArray.length;i++)
{

if(userInfoArray[i].UserName==userInfo.UserName)
{
userInfoArray[i].UserMD5=userInfo.UserMD5;
userInfoArray[i].Remembered=userInfo.Remembered;
userInfoArray[i].UserID=userInfo.UserID;
}
if(i==userInfoArray.length-1&&userInfoArray[i].UserName!=userInfo.UserName)
userInfoArray.addItem(userInfo);
}
mycookie.clear();
mycookie.data.userInfoArray=userInfoArray;
}  
这块代码的意思就是检查是不是userInfoArray已经有该用户了,如果没有就加入到该列表中。
看逻辑:
在for循环中和接下来中出现了错误,检查到已存在该用户的时候未跳出,然后继续执行,到最后一个元素,比较如果不相等,就加入。这时候就会引入重复元素。其实只要在已存在的时候加个break就可以了。但是当时想当然的以为后边的逻辑能处理这种情况,就没加。bug就来了。
仔细,切记,切记!
review代码记得
原文地址:https://www.cnblogs.com/macula7/p/1960406.html