欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript 數組拷貝數組

林國瑞1年前7瀏覽0評論
在日常的JavaScript編程中,數組拷貝是一個非常常見的操作。有時候我們需要將數組A復制一份,得到一個全新的數組B,這時候我們就需要通過一種方式來完成。本篇文章將主要介紹JavaScript中數組拷貝的幾種方法及其應用場景。 一、直接賦值 我們最常用的方法是直接將數組賦值給一個新的變量。例如下面這個例子:
let arr1 = [1, 2, 3, 4];
let arr2 = arr1;
上述代碼中,我們將arr1數組賦值給了arr2。此時如果我們修改arr2,arr1也會相應地發生改變。如下:
arr2[2] = 6;
console.log(arr1);    // [1, 2, 6, 4]
console.log(arr2);    // [1, 2, 6, 4]
這種方法雖然簡單,但是并不適合所有情況,比如我們需要一個全新的數組而不是對原數組的拷貝引用。 二、slice()方法 前面提到的直接賦值方法不太好用,那我們如何才能拷貝一個全新的數組呢?在JavaScript中,數組提供了一個很好用的方法slice()。
let arr1 = [1, 2, 3, 4];
let arr2 = arr1.slice(0);
上述代碼中,我們將arr1數組的所有元素通過slice(0)方法拷貝到arr2數組中,這樣就得到了一個全新的數組。如果我們修改arr2,arr1不會受到任何的影響。如下:
arr2[2] = 6;
console.log(arr1);    // [1, 2, 3, 4]
console.log(arr2);    // [1, 2, 6, 4]
三、concat()方法 數組提供了另一種很方便的拷貝方式——concat()方法。concat()方法會將調用它的數組本身和它的參數拼接成一個新的數組。
let arr1 = [1, 2, 3, 4];
let arr2 = arr1.concat();
我們可以用concat()方法將arr1的所有元素連接起來,從而得到這樣一個新的數組。修改arr2不會影響到arr1。如下:
arr2[2] = 6;
console.log(arr1);    // [1, 2, 3, 4]
console.log(arr2);    // [1, 2, 6, 4]
四、ES6新增展開運算符 在ES6之后,我們也可以使用展開運算符來完成數組的拷貝。展開運算符可以將一個或多個元素展開成一個數組。
let arr1 = [1, 2, 3, 4];
let arr2 = [...arr1];
上述代碼是展開運算符的實例。它與slice()的作用是一樣的,可以得到一個全新的數組。使用起來更加簡便,但需要注意的是它只支持ES6及以上版本的JavaScript。 五、Object.assign()方法 除了數組自帶的方法以外,我們還可以通過Object.assign()方法來實現數組拷貝。Object.assign()方法會將目標對象(即拷貝的數組)和源對象(即被拷貝的數組)進行合并,返回一個新對象。例子如下:
let arr1 = [1, 2, 3, 4];
let arr2 = Object.assign([], arr1);
Object.assign()方法也可以得到一個全新的數組,修改arr2也不會影響到arr1。然而不同于數組自帶的方法,Object.assign()方法可以將源對象的屬性合并到目標對象中,并且可以處理更多的數據類型。 綜上所述,JavaScript中數組拷貝的方法有很多種,我們可以根據實際情況來選擇。如果是ES6以上的版本的JavaScript,可以使用展開運算符(實現簡單);如果需要向后兼容,推薦使用slice()方法;如果需要處理更多的數據類型,可以使用Object.assign()方法。