3 移除数组arr中所有与item相等的元素,不更改原数组。
2017-11-17 18:12
232 查看
方法一: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方法来操作;
< 4000 code class=" hljs javascript">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; }
相关文章推荐
- 移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回
- 移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
- 在数组 arr 中,查找值与 item 相等的元素出现的所有位置
- 统计数组arr中的值等于item的元素出现的次数
- 面试题精选(85):给定数组Arr[n],O(n)时间内找出每个元素左侧所有元素中位置最靠近该元素且大于该元素的元素
- leetcode 27 Remove Element(移除数组中的与val相等的元素)
- 标准库容器怎样移除与某一值相等的所有元素
- 给定数组Arr[n],O(n)时间内找出每个元素左侧所有元素中位置最靠近该元素且大于该元素的元素
- list与数组的转化、remove重复元素、移除List中的所有空元素
- 统计数组 arr 中值等于 item 的元素出现的次数
- Swift判断二个数组中的所有元素是否相等
- 在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
- 计算给定数组 arr 中所有元素的总和
- 统计数组 arr 中值等于 item 的元素出现的次数
- 给定数组Arr[n],O(n)时间内找出每个元素左侧所有元素中位置最靠近该元素且大于该元素的元素
- 27. Remove Element(移除数组中与指定值相等的元素)
- 在一个数组中删除所有的和给定数相等的元素
- 在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组
- 计算数组arr中所有元素的和
- 给定一个数组arr和一个目标数targrt,删除所有目标值元素,并返回新长度