做作业的时候遇到了一个问题,需要删除数组内所有等于某一值的特定元素时
使用splice删除数组时会改变数组的长度
例如,当想删除arr数组中等于key的元素时
for(i in arr){
if(arr[i]==key){
arr.splice(i,1);
}
}
使用上面的代码会导致没办法删除干净,是因为当splice每调用一次就会导致arr.length-1
而i的值没有改变,会跳过数组中的某些元素
这时候使用
while(arr.indexOf(key)!=-1){
arr.splice(arr.indexOf(key),1);
}
就可以很好的删除掉数组内等于特定值的元素了