js能力測評——移除數組中的元素

移除數組中的元素

題目描述 : 移除數組 arr 中的全部值與 item 相等的元素。不要直接修改數組 arr,結果返回新的數組
示例1
輸入   [1, 2, 3, 4, 2], 2
輸出   [1, 3, 4]

參考答案

注意到題目中說的不要修改原數組,這裏有兩個思路(一是經過深拷貝獲得相同的數組,而後就不須要考慮splice,push等會不會影響原數組;二是利用數組的slice和concat, filter等不影響原數組的方法進行操做)數組

  • 首層深拷貝(concat,slice, 擴展運算符)
function remove(arr, item) {
    var b=[...arr];
    for(var i=0;i<b.length;i++){
        if(b[i]==item){
            b.splice(i, 1);
        }
    }
    return b;
}
function remove(arr, item){
    var b=[];
    for(var i=0;i<arr.length;i++){
        if(arr[i]!==item){
            b.push(arr[i]);
        }
    }
}
  • 利用不影響原數組的方法
function remove(arr, item) {
    return arr.filter(i=>i!=item);    
}
function remove(arr, item) {
    var b=[];
    for(var i=0;i<arr.length;i++){
        if(arr[i]!=item){
            b=b.concat(arr[i]);
        }
    }
    return b;
}
相關文章
相關標籤/搜索