一个简单的需求是,在遍历一个数组时,移除指定的项. 下列代码是不能正常工作的: var elements = [1, 5, 5, 3, 5, 2, 4]; for(var i = 0; i < elements.length; i++){ if(elements[i] == 5){ elements.splice(i, 1); } } 不能正常执行的问题是,element.length是在for循环开始时就确定的snapshot,不会随着splice操作而改变. 正确的写法是: var elem…