這篇文章主要為大家展示了“JS數(shù)組拷貝技巧有哪些”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“JS數(shù)組拷貝技巧有哪些”這篇文章吧。
創(chuàng)新互聯(lián)公司專注于珙縣企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站制作。珙縣網(wǎng)站建設(shè)公司,為珙縣等地區(qū)提供建站服務(wù)。全流程按需求定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
技巧 1 - 使用Array.slice方法
const numbers = [1, 2, 3, 4, 5]
const copy = numbers.slice()
copy.push(6) // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy)
console.log(numbers)
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 2 - 使用Array.map方法
const numbers = [1, 2, 3, 4, 5]
const copy = numbers.map( num => num )
copy.push(6) // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 3 - 使用Array.from 方法
const numbers = [1, 2, 3, 4, 5];
const copy = Array.from(new Set(numbers));
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 4 - 使用展開操作符
const numbers = [1, 2, 3, 4, 5];
const copy = [...numbers];
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 5 - 使用 Array.of 方法和展開操作符
const numbers = [1, 2, 3, 4, 5];
const copy = Array.of(...numbers);
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
Array.of() 方法創(chuàng)建一個(gè)具有可變數(shù)量參數(shù)的新數(shù)組實(shí)例,而不考慮參數(shù)的數(shù)量或類型。Array.of() 和 Array 構(gòu)造函數(shù)之間的區(qū)別在于處理整數(shù)參數(shù):Array.of(7) 創(chuàng)建一個(gè)具有單個(gè)元素 7 的數(shù)組,而 Array(7) 創(chuàng)建一個(gè)長(zhǎng)度為7的空數(shù)組(注意:這是指一個(gè)有7個(gè)空位(empty)的數(shù)組,而不是由7個(gè)undefined組成的數(shù)組)。
Array.of(7); // [7]
Array.of(1, 2, 3); // [1, 2, 3]
Array(7); // [ , , , , , , ]
Array(1, 2, 3); // [1, 2, 3]
技巧 6 - 使用 Array 構(gòu)造函數(shù)和展開操作符
const numbers = [1, 2, 3, 4, 5];
const copy = new Array(...numbers);
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 7 - 使用解構(gòu)
const numbers = [1, 2, 3, 4, 5];
const [...copy] = numbers;
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 8 - 使用 Array.concat 方法
const numbers = [1, 2, 3, 4, 5];
const copy = numbers.concat();
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 9 - 使用 Array.push 方法和展開操作符
const numbers = [1, 2, 3, 4, 5];
let copy = [];
copy.push(...numbers);
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 10 - 使用 Array.unshift 方法和展開操作符
const numbers = [1, 2, 3, 4, 5];
let copy = [];
copy.unshift(...numbers);
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 11 - 使用 Array.forEach 方法和展開操作符
const numbers = [1, 2, 3, 4, 5];
let copy = [];
numbers.forEach((value) => copy.push(value));
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 12 - 使用 for 循環(huán)
const numbers = [1, 2, 3, 4, 5];
let copy = [];
for (let i = 0; i < numbers.length; i++) {
copy.push(numbers[i]);
}
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 13 - 使用 Array.reduce 方法
這個(gè)做法是可行,但比較多余,少用
const numbers = [1, 2, 3, 4, 5];
const copy = numbers.reduce((acc, x) => { acc.push(x); return acc; }, []);
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
技巧 14 - 使用古老的 apply 方法
const numbers = [1, 2, 3, 4, 5];
let copy = [];
Array.prototype.push.apply(copy, numbers);
copy.push(6); // 添加新項(xiàng)以證明不會(huì)修改原始數(shù)組
console.log(copy);
console.log(numbers);
// 輸出
// [1, 2, 3, 4, 5, 6]
// [1, 2, 3, 4, 5]
以上是“JS數(shù)組拷貝技巧有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!