题目要求不改变原数组,所以我们可以声明一个数组a用于保存arr中不同于item的值,最后将a返回。
1、push
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; }
或
function remove(arr, item) { var a=[]; arr.forEach(function(e){ if(e!==item){ a.push(e); } }) return a; }
2、splice
function remove(arr,item){ var a= arr.slice(0);//将arr中的元素赋给a for(var i=0;i<a.length;i++){ if(a[i] == item){ a.splice(i,1);//删除a中第i个元素 i--; } } return a; }
3、filter()
function remove(arr,item){ return arr.filter(function(ele){ return ele != item; }) }