方法一:filter ES5方法
var a=[1,5,‘ff‘,‘g‘,‘h‘,‘sd‘]; alert(remove(a,‘g‘)); function remove(arr,item){ return arr.filter(function(ele){return ele !=item}) }
方法二:push方法
function remove(arr,item){ var arr2=[]; for (var i=0;i<arr.length ;i++) { if (arr[i] !=item) { arr2.push(arr[i]); } } return arr2; }
方法三:splice方法
//此方法的牛逼之处在于倒着删除相等的元素item,避免了正着删除时后面元素前移的问题; function remove(arr,item){ var newarr=arr.slice(0); for (var i=newarr.length;i>=0 ;i-- ) { if (newarr[i]==item) { newarr.splice(i,1); } } return newarr; }
方法四:利用数组本身的特性,将数组看作队列,使用push和shift方法来操作;
function remove(arr,item){
var newarr=arr.slice(0);
for (var i=0;i<newarr.length+1;i++) //注意此处的i<newarr.length+1;
{
if (newarr[0]!==item)
{
newarr.push(newarr[0]);
newarr.shift();
}
else{
newarr.shift();
}
}
return newarr;
}
时间: 2024-09-28 11:32:26