前言 📝
今天看到一个好玩的事情,就是如何在给后端传递参数的时候去掉多余的参数。然后就研究了一下,想到一个很好的解决方案,感觉代码很优雅。在这里分享一下。
1. 优雅的传递参数
1.1 之前的写法
在之前,不管三七二十一,直接将所有的参数全部传递给后端,反正后端用不到的参数他不会在实体类中接收。要不就是用下面的这种写法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| const queryParams = { pageNumber: 1, pageSize: 10, total: 100 }
async function fetchList() { const params = { pageNumber: queryParams.pageNumber, pageSize: queryParams.pageSize, } await fetch('http://xxxx/api/list', params) }
|
可以看到,上面的代码非常的丑陋。
1.2 优雅的写法
1 2 3 4 5 6 7 8 9 10 11
| const queryParams = { pageNumber: 1, pageSize: 10, total: 100 }
async function fetchList() { const { total, ...params } = queryParams await fetch('http://xxxx/api/list', params) }
|
我们可以通过结构+展开运算符来让代码变得优雅。
2. 展开运算符其他应用场景
2.1 合并数组对象
1 2 3 4 5
| const arr1 = [1,2,3,4] const arr2 = [5,6,7]
console.log([...arr1, ...arr2])
|
1 2 3 4 5
| const obj1 = { a: 1, b: 2 } const obj2 = { a: 3, d: 2 }
console.log({ ...obj1, ...obj2 })
|
2.2 在函数中使用
1 2 3 4 5
| function sum(...args) { return args.reduce((prev, item) => prev + item, 0) }
console.log(1,2,3,4,5).
|