Javascript不清不楚之concat

Array.prototype.concat

代码均来自:MDN

此方法用来合并多个数组,不会改变原有的数组,返回一个新的数组(根据提供的数组做浅拷贝生成新数组)
注意:数组/值在连接时保持不变。此外,对于新数组的任何操作(仅当元素不是对象引用时)都不会对原始数组产生影响,反之亦然

  • 多个值或者数组合并
var arr = [1, 2, 3];
var res = arr.concat(4, [5, 6], [[7, 8], [9, 10]], {});
console.log(arr);   // [1, 2, 3]
console.log(res);   // [1, 2, 3, 4, 5, 6, Array(2), Array(2), {}]
//如果合并项是原子类型则直接push到arr,如果是数组则将数组里的元素挨个push到arr, 其他类型直接push
  • 合并嵌套数组
var arr1 = [[1, 2, 3], 4, 5], arr2 = [6, 7];
var res = arr1.concat(arr2);
arr1[0][0] = 11;
console.log(res);       // [[11, 2, 3], 4, 5, 6, 7]
console.log(arr1);      // [[11, 2, 3], 4, 5]
//由此可见arr1和arr2都是浅拷贝合并到了新书中res中,更改arr1的第一个引用型元素的值也反馈到了res中
### JavaScript `concat` 方法详解 #### 字符串连接功能 在 JavaScript 中,`concat()` 是一种用于字符串操作的方法。该方法接收任意数量的参数,并将这些参数作为字符串依次附加到调用它的原始字符串之后,最终返回一个新的组合后的字符串对象[^1]。 ```javascript let str1 = "Hello"; let resultStr = str1.concat(" ", "World", "!"); // 结果:"Hello World!" console.log(resultStr); ``` 上述代码展示了如何利用 `concat()` 将多个字符串片段拼接在一起形成完整的问候语句。 #### 数组合并特性 除了处理字符串外,`concat()` 还可以应用于数组之间。当作用于数组时,它会按照传入参数列表中的先后次序来追加新元素至原数组末端,从而构建出一个全新的联合数组实例而不改变原有数据结构[^3]。 ```javascript const array1 = ['a', 'b']; const combinedArray = array1.concat(['c'], ['d', 'e']); // 输出: ["a", "b", "c", "d", "e"] console.log(combinedArray); ``` 这段示例说明了怎样借助 `concat()` 实现多维数组间的无缝衔接。 #### 动态脚本加载场景下的应用 值得注意的是,在某些特定情境下——比如动态向页面注入外部资源文件(如 `.js` 文件),也可以巧妙运用 `concat()` 来辅助完成这一过程。不过这里提到的应用并非直接针对 `concat()` 的常规用途而是作为一种间接手段参与到了整个流程当中[^4]。 ```html <script> var scriptElement = document.createElement('script'); scriptElement.type = 'text/javascript'; scriptElement.src = 'externalLibrary.js'.concat('?v=', new Date().getTime()); document.head.appendChild(scriptElement); </script> ``` 在此处,为了防止浏览器缓存影响最新版本库文件的有效获取,通过给 URL 参数加上时间戳的方式实现了强制刷新的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值