JavaScript 中“...” 的多种用途

一、扩展运算符(Spread Operator)

  • 用于数组:可以将一个数组展开为另一个数组的元素。例如:
javascript 复制代码
     const arr1 = [1, 2, 3];
     const arr2 = [4, 5, 6];
     const combinedArray = [...arr1,...arr2];
     console.log(combinedArray); // [1, 2, 3, 4, 5, 6]
  • 可以在函数调用中展开数组参数,使得函数可以接受任意数量的参数。例如:
javascript 复制代码
     function sum(a, b, c) {
       return a + b + c;
     }
     const numbers = [1, 2, 3];
     console.log(sum(...numbers)); // 6
  • 用于对象:可以复制对象的属性到另一个对象。例如:
javascript 复制代码
     const obj1 = { a: 1, b: 2 };
     const obj2 = { c: 3,...obj1 };
     console.log(obj2); // { c: 3, a: 1, b: 2 }

二、剩余参数(Rest Parameters)

在函数定义中,"..." 可以用来收集多个参数到一个数组中。例如:

javascript 复制代码
function addNumbers(...numbers) {
  return numbers.reduce((sum, num) => sum + num, 0);
}
console.log(addNumbers(1, 2, 3, 4, 5)); // 15

在这个函数中,"numbers" 是一个包含所有传入参数的数组。可以使用数组的方法如 "reduce" 来处理这些参数。

三、实际代码实例

javascript 复制代码
this.data.orderList
      .filter(item => item.quantity > 0)
      .map(item => ({
        ...item,
        ticket_des: '' // 直接将ticket_des设置为空字符串  
      }));

在这段 JavaScript 代码中,...item是扩展运算符的用法。

这里是在对数组进行map操作时,将原数组中的每个元素(这里是对象item)进行扩展,并添加一个新的属性ticket_des且设置为空字符串,从而创建一个新的对象。

这种用法可以避免手动逐个复制对象的已有属性,使得代码更加简洁和易于维护。例如,如果原对象item有属性a、b、c,使用...item后,新对象会自动包含这些属性,然后再加上新设置的ticket_des属性。

相关推荐
2601_962218619 分钟前
C++中decltype关键字的实现
开发语言·c++
hqyjzsb13 分钟前
法律 Prompt 干货:搭建合同审查提示词要包含哪些要素
开发语言·人工智能·python·职场和发展·数据分析·prompt·业界资讯
孙启超21 分钟前
【AI开发之Rust】第 19 课:UniFFI 导出核心能力
开发语言·后端·rust
2601_9669496536 分钟前
股票池发生变化后,如何高效更新行情数据?从全量刷新到增量同步
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
默_笙41 分钟前
🚙 一条腿走路会摔:ES 关键词检索、混合召回与 ReRank 裁判
前端·javascript
繁华的地方不一定留下你的脚印43 分钟前
C++ std::variant 与 std::visit:安全保存多种类型,写清每个处理分支
开发语言·c++
小羊没烦恼!1 小时前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#
❀͜͡傀儡师1 小时前
20 年沉淀,CAS 8.0 重新定义企业级 SSO:适配 JDK 25 与 Spring Boot 4.1
java·开发语言·spring boot
weixin_307779131 小时前
基于睿擎工业开发平台的预训练视觉模型轻量化适配与低代码部署优化
开发语言·算法
实心儿儿1 小时前
Qt — Qt 多线程
开发语言·qt