今天自己写代码,发现:思路我可能知道,但是依旧不成功。重要原因是 变量的作用域 问题。
很简单的要求:移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组。
我写的:
function remove(arr, item) {
//上来直接循环
for(var i=0; i < arr.length; i++){
//在这里定义新数组
var a = [];
//如果arr[i]不等于item,就加入数组a
if(arr[i] != item){
a.push(arr[i]);
}
}
return a;
}
正确的是:
function remove(arr, item) {
//声明一个新数组保存结果
var a = [];
//循环遍历
for(var i=0; i < arr.length; i++){
//如果arr[i]不等于item,就加入数组a
if(arr[i] != item){
a.push(arr[i]);
}
}
return a;
}