【问题标题】:Javascript +ES: Is there any difference between [...arr] and arr? [duplicate]Javascript + ES:[...arr] 和 arr 之间有什么区别吗? [复制]
【发布时间】:2018-07-23 14:17:15
【问题描述】:

考虑一个场景,你试图迭代一个 const 数组。 会不会有区别

[...arr].forEach((elem) => {
  // your operations
});

 arr.forEach((elem) => {
   // your operations
 });

这两个可以互换使用吗?

【问题讨论】:

  • 是的,他们可以。我不明白你为什么要使用第一个表达式而不是第二个。
  • 是的!常量数组只会将地址作为常量,您仍然可以更改/添加元素。但是当你使用扩展运算符时,你并没有触及原始数组

标签: javascript ecmascript-6


【解决方案1】:
  1. 它将制作数组的副本。如果回调函数将使用array 参数并对其进行修改,那将有所不同。例如:

    [...arr].forEach((val, i, a) => a.push(val))
    
  2. 如果arr 不是一个数组而是一个类数组,它将把它变成一个数组,从而允许你forEach 覆盖它。例如:

    [...document.getElementsByTagName('p')].forEach(p => console.log(p))
    

【讨论】:

    猜你喜欢
    • 2015-01-06
    • 1970-01-01
    • 2021-09-16
    • 2011-07-26
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 2012-04-28
    • 2020-10-14
    相关资源
    最近更新 更多