#学习笔记#——JavaScript 数组部分编程(一)

来自牛客网的js编程题

1、移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组 

 1 function remove(arr, item) {
 2     if(!Array.isArray(arr)) return -1;
 3     for(var i=0;i<arr.length;i++){
 4         if(arr[i]==item){
 5             arr.splice(i,1);
 6             i--;   //这里是因为用splice删除一个元素之后,下一个元素替换当前元素的位置
 7         }        
 8     }
 9     return arr;
10 }

上面代码测试通过率66.67%,主要原因是改变了原始的数组。

修改成如下,亲测通过率100%

function remove(arr, item) {
    if(!Array.isArray(arr)) return -1;
    var a=new Array();
    for(var i=0;i<arr.length;i++){
        if(arr[i]!=item){
            a.push(arr[i]);         
        }        
    }
    return a;
}

这里相当于两种思路来解决问题, 一种是正推,另一种是反推, 类似数学中计算概率问题的思路。

原文地址:https://www.cnblogs.com/olive987/p/5755350.html