JS数组合并(5种)

JS数组合并(5种)前言项目过程中,经常会遇到JS数组合并的情况,时常为这个纠结。这里整理一下。简单而实用的for最容易想到的莫过于for了。会变更原数组,当然也可以写成生成新数组的形式。letarr=[1,2]letarr2=[3,4]for(letiinarr2){arr.push(arr2[i])}console.log(arr)//[1,2,3,4]arr.concat(arr2)会生成新的数组。letarr=[1,2]let

大家好,又见面了,我是你们的朋友全栈君。

前言

项目过程中,经常会遇到 JS 数组合并的情况,时常为这个纠结。这里整理一下。

简单而实用的for

最容易想到的莫过于 for 了。

会变更原数组,当然也可以写成生成新数组的形式。

let arr = [1, 2]
let arr2 = [3, 4]

for (let i in arr2) { 
   
    arr.push(arr2[i])
}

console.log(arr)
// [1, 2, 3, 4]

arr.concat(arr2)

会生成新的数组。

let arr = [1, 2]
let arr2 = [3, 4]

arr = arr.concat(arr2)

console.log(arr)
// [1, 2, 3, 4]

arr.push.apply(arr, arr2)

第一种 for 循环就是使用的 push 来实现的。

因为 push 是可以接收多个参数的,所以我们可以使用 apply 来实现。

会变更原数组。

let arr = [1, 2]
let arr2 = [3, 4]

arr.push.apply(arr, arr2)

console.log(arr)
// [1, 2, 3, 4]

[…arr, …arr2]

ES6 的语法,简单而实用。

会生成新的数组。

let arr = [1, 2]
let arr2 = [3, 4]

arr = [...arr, ...arr2]

console.log(arr)
// [1, 2, 3, 4]

push(…arr)

push 结合 ...[] 来实现。

会变更原数组。

let arr = [1, 2]
let arr2 = [3, 4]

arr.push(...arr2)

console.log(arr)
// [1, 2, 3, 4]

最后

实现方式大同小异,可以理解那最容易理解的一部分。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147436.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql和redis的区别

    mysql和redis的区别1.mysql和redis的数据库类型mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度较慢。redis是NOSQL,即非关系型数据库,也是缓存数据库,即将数据存储在缓存中,缓存的读取速度快,能够大大的提高运行效率,但是保存时间有限2.mysql的运行机制mysql作为持久化存储的关系型数据库,相对薄弱的地方在于每次请求访问数据库时,都存在着I/O操作,如果反复…

    2022年6月14日
  • python 去除字符串中指定字符[通俗易懂]

    python 去除字符串中指定字符[通俗易懂]python中的strip()可以去除头尾指定字符ss=’我的电话是18827038663,也是微信号,\n请加入,谢谢\n\n\n’print(ss.strip(‘\n’))结果:我的电话是18827038663,也是微信号,请加入,谢谢可以看到只能删除头尾指定字符。想要去除中间字符,可以使用replace()函数ss=’我的电话是188270386…

    2022年6月13日
  • JAVA日本免费动漫_漫画 | Java多线程与并发(一)

    JAVA日本免费动漫_漫画 | Java多线程与并发(一)1、什么是线程?2、线程和进程有什么区别?3、如何在Java中实现线程?4、Java关键字volatile与synchronized作用与区别?volatile修饰的变量不保留拷贝,直接访问主内存synchronized用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码5、有哪些不同的线程生命周期?6、你对线程优先级的理解是什么?7、什么是死锁(Deadlock)…

    2022年7月7日
  • Python常用代码_python画图代码大全

    Python常用代码_python画图代码大全原标题:30个Python常用极简代码,拿走就用文章转自:Python程序员学Python怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则。本文是30个极简任务,初学者可以尝试着自己实现;本文同样也是30段代码,Python开发者也可以看看是不是有没想到的用法。、1重复元素判定以下方法可以检查给定列表是不是存在重复元素,它会使用set函数来移除所有重复元…

    2022年8月27日
  • Spark存储体系底层架构剖析-Spark商业环境实战

    Spark存储体系底层架构剖析-Spark商业环境实战

    2021年6月15日
  • 解析PHP的self关键字

    解析PHP的self关键字

    2022年2月8日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号