移除数组中的元素
题目描述
移除数组 arr 中的所有值与 item 相等的元素,请直接在给定的 arr 数组上进行操作
输入例子:
removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2)
输出例子:
[1, 3, 4]
本人的解法:
var arr=[2,1,2,3,4,2,2];
var arr1=[];
var item=2;
var len=arr.length;
for(var i=0;i<len;i++){
if(!(arr[i]===item)){
arr1.push(arr[i]);
}
}
arr=arr1;
document.write(arr);
还有没有其他的办法,不用创建新的数组,直接在原数组上删除,原数组的元素。求大神解答
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一般从原数据移动元素,都从后往前查找(因为删除元素之后后面的序号会变)
输出
补充 filter 方法
今天有人赞,顺着消息过来了,然后想起还有个更简单的办法
不过严格的说这不是从原数组移除,是建了个不包含指定数据的新数组。
但是为了达到直接改变原数组的要求,又将原数组清空,从新数组把元素添加进去了。
arr1=arr.filter(function(i){return i!=2})
//没注意,要在原数组删除。。。@边城 优化了一下 哈哈