困惑
在练习数组操作的时候,希望实现删除数组中特定元素(比如删除字符“1”)的功能
很容易地就想到了利用for循环和splice方法
for (let i = 0; i < hobbies.length; i++) {
if (hobbies[i] == "1") {
hobbies.splice(i, 1);
i--;
}
}
测试结果
"1", "2", "3","1", "1", "4", "1"
"2", "3", "4"
如愿达成目标,不过想起来还有for in这个东西,似乎写起来更简洁
那用for in行不行呢
for(var i in hobbies)
{
if(hobbies[i]=="1")
{
hobbies.splice(i,1);
i--;
}
}
测试结果
"1", "2", "3", "1", "1","4"
"2", "3", "1", "4"
为什么中间多了一个"1"出来?发生了什么?
测试
添加console.log语句观测i值的变化