Yag*_*giz 5 javascript arrays infinite-loop
我试图在Ionic Framework中创建一个用于列表目的的数组,并检查所有callcenter名称的第一个char,将它们添加到字母数组中.
for (var i = 0; i < callcenterList.length; i++) {
var value = callcenterList[i]._owner && callcenterList[i]._owner.company.name[0];
if ((alphabet.indexOf(value) == -1 && isNaN(parseInt(value))) ||
(isNaN(alphabet[0]) && !isNaN(value))) {
if(!isNaN(value))
value = 123;
alphabet.push(value);
callcenterList.splice(i, 0, {
divider: {
alphabet: value
}
});
}
};
Run Code Online (Sandbox Code Playgroud)
更换value = 123用value = '#'的原因谷歌浏览器和谷歌Chrome金丝雀发生故障,并立即在Mac上使用最多的RAM 100%.
这是一个Javascript错误还是与Google Chrome本身有关?
这不是浏览器或其他任何内容中的错误:您只是创建一个条件,您的代码进入无限循环,这往往会使浏览器陷入困境.你可以用一个简单的while (true) {}循环做同样的事情.
具体来说,您正在迭代callcenterList,并且任何时候isNaN(alphabet[0]),您正在拼接一个新元素callcenterList.alphabet[0]将你推到的第一个值,在你正在看的条件中,你将设置为'#'.
因此,isNaN(alphabet[0])永远都是如此.
因此,您将继续添加值callcenterList.
因此i < callcenterList.length永远是真实的.
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |