移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组。
【解一】逆向思维,要求不改变原数组,那就把不相等的元素插入新数组。
function remove(arr, item) {
if (arr.length === 0) {
return arr
} else {
var result = []
for (var i = 0; i < arr.length; i++) {
if (arr[i] !== item) {
result.push(arr[i])
}
}
return result
}
}
【解二】splice的使用
splice(index, count, add); index规定添加或者删除元素的位置;count要删除元素的数量,如果值为0,则不删除;add表示向数组添加的新项目。
splice会改变原数组。
function remove(arr,item){
var newarr = arr.slice(0);
for(var i=0;i<newarr.length;i++){
if(newarr[i] == item){
newarr.splice(i,1);
i--;
}
}
return newarr;
}
【解三】slice的使用&#