JS数组拷贝技巧有哪些

这篇文章主要为大家展示了“JS数组拷贝技巧有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS数组拷贝技巧有哪些”这篇文章吧。

创新互联公司专注于珙县企业网站建设,成都响应式网站建设公司,商城网站制作。珙县网站建设公司,为珙县等地区提供建站服务。全流程按需求定制设计,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务

技巧 1 - 使用Array.slice方法

const numbers = [1, 2, 3, 4, 5]

const copy = numbers.slice()

copy.push(6) // 添加新项以证明不会修改原始数组

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) // 添加新项以证明不会修改原始数组

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); // 添加新项以证明不会修改原始数组

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); // 添加新项以证明不会修改原始数组

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); // 添加新项以证明不会修改原始数组

console.log(copy);

console.log(numbers);

// 输出

// [1, 2, 3, 4, 5, 6]

// [1, 2, 3, 4, 5]

Array.of() 方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。Array.of() 和 Array 构造函数之间的区别在于处理整数参数:Array.of(7) 创建一个具有单个元素 7 的数组,而 Array(7) 创建一个长度为7的空数组(注意:这是指一个有7个空位(empty)的数组,而不是由7个undefined组成的数组)。

Array.of(7);       // [7]

Array.of(1, 2, 3); // [1, 2, 3]

Array(7);          // [ , , , , , , ]

Array(1, 2, 3);    // [1, 2, 3]

技巧 6 - 使用 Array 构造函数和展开操作符

const numbers = [1, 2, 3, 4, 5];

const copy = new Array(...numbers);

copy.push(6); // 添加新项以证明不会修改原始数组

console.log(copy);

console.log(numbers);

// 输出

// [1, 2, 3, 4, 5, 6]

// [1, 2, 3, 4, 5]

技巧 7 - 使用解构

const numbers = [1, 2, 3, 4, 5];

const [...copy] = numbers;

copy.push(6); // 添加新项以证明不会修改原始数组

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); // 添加新项以证明不会修改原始数组

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); // 添加新项以证明不会修改原始数组

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); // 添加新项以证明不会修改原始数组

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); // 添加新项以证明不会修改原始数组

console.log(copy);

console.log(numbers);

// 输出

// [1, 2, 3, 4, 5, 6]

// [1, 2, 3, 4, 5]

技巧 12 - 使用 for 循环

const numbers = [1, 2, 3, 4, 5];

let copy = [];

for (let i = 0; i < numbers.length; i++) {

copy.push(numbers[i]);

}

copy.push(6); // 添加新项以证明不会修改原始数组

console.log(copy);

console.log(numbers);

// 输出

// [1, 2, 3, 4, 5, 6]

// [1, 2, 3, 4, 5]

技巧 13 - 使用 Array.reduce 方法

这个做法是可行,但比较多余,少用

const numbers = [1, 2, 3, 4, 5];

const copy = numbers.reduce((acc, x) => { acc.push(x); return acc; }, []);

copy.push(6); // 添加新项以证明不会修改原始数组

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); // 添加新项以证明不会修改原始数组

console.log(copy);

console.log(numbers);

// 输出

// [1, 2, 3, 4, 5, 6]

// [1, 2, 3, 4, 5]

以上是“JS数组拷贝技巧有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!

文章题目:JS数组拷贝技巧有哪些
文章分享:https://www.cdcxhl.com/article32/ihiopc.html

成都网站建设公司_创新互联,为您提供移动网站建设企业网站制作自适应网站域名注册定制网站网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设