移除数组中的元素


题目描述

移除数组 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);

还有没有其他的办法,不用创建新的数组,直接在原数组上删除,原数组的元素。求大神解答

JavaScript 数组

Actury 10 years, 8 months ago

arr1=arr.filter(function(i){return i!=2}) //没注意,要在原数组删除。。。

神秘君17号 answered 10 years, 8 months ago

一般从原数据移动元素,都从后往前查找(因为删除元素之后后面的序号会变)


 javascript


 function remove(arr, item) {
    for (var i = arr.length - 1; i >= 0; i--) {
        if (arr[i] === item) {
            arr.splice(i, 1);
        }
    }
    return arr;
}

var arr = [2, 1, 2, 3, 4, 2, 2];
console.log(remove(arr, 2));

输出


 [1, 3, 4]

GEAR3 answered 10 years, 8 months ago

Your Answer