js有關數組的相關操作實現

1,移除數組 arr 中的所有值與 item 相等的元素。
示例1 :

輸入:[1, 2, 2, 3, 4, 2, 2], 2
輸出:[1, 3, 4]

  • 1,不要直接修改數組 arr,結果返回新的數組

實現如下:

function remove(arr, item) {
    var newArr = new Array();
    for(var i=0; i<arr.length; i++){
        if(arr[i] !== item){
            newArr.push(arr[i]);
        }
    }
    return newArr;
}
console.log(remove([1, 2, 3, 4, 2], 2));
  • 2,直接在給定的 arr 數組上進行操作,並將結果返回

實現如下:

function removeWithoutCopy(arr, item) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] === item) {
            arr.splice(i, 1);
            i--;
        }

    }
    return arr;
}

console.log(removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2));

或者:

function removeWithoutCopy(arr, item) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] === item) {
            arr.splice(i, 1);
            i = 0;
        }

    }
    return arr;
}

console.log(removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2));

2,在數組 arr 的 index 處添加元素 item。不要直接修改數組 arr,結果返回新的數組

輸入:

[1, 2, 3, 4], ‘z’, 2

輸出:

[1, 2, ‘z’, 3, 4]

實現如下:

function insert(arr, item, index) {
    var newArr = [].concat(arr);
    newArr.splice(index, 0, item);
    return newArr;
}
console.log(insert([1, 2, 3, 4], 'z', 2));

3,實現將一個數組的內容賦值給另一個數組

法一:

var arr = [1, 2, 3, 4];
var newArr = [].concat(arr);

法二:

var arr = [1, 2, 3, 4];
var newArr = arr.slice(0);

4,找出數組 arr 中重複出現過的元素

法一:

function duplicates(arr) {
    var a=[]
    for(var i=0;i<arr.length-1;i++){
        for(var j=i+1;j<arr.length;j++){
            if(arr[i]==arr[j]&&a.indexOf(i)==-1){
                a.push(arr[i]);
            }
        }
    }
    return a;
}

duplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]).sort()

法二:

function duplicates(arr) {
    var temp = arr[0];
    var arrB = [];
    arrB.push(temp);
    var arrC = [];
    for (var i = 1; i < arr.length; i++) {
        if (arrB.indexOf(arr[i], 0) !== -1) {
            if (arrC.indexOf(arr[i], 0) == -1)
                arrC.push(arr[i]);
        }
        arrB.push(arr[i]);
    }
    return arrC;
}
duplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章