2018-10-10 18:03:03 -04:00
|
|
|
---
|
|
|
|
id: 587d7b7b367417b2b2512b17
|
2021-01-12 08:18:51 -08:00
|
|
|
title: 使用展开运算符合并数组
|
2018-10-10 18:03:03 -04:00
|
|
|
challengeType: 1
|
2020-08-04 15:14:21 +08:00
|
|
|
forumTopicId: 301156
|
2018-10-10 18:03:03 -04:00
|
|
|
---
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --description--
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
<dfn>展开语法</dfn>的另一个重要用途是合并数组,或者将某个数组的所有元素插入到另一个数组的任意位置。我们也可以使用 ES5 的语法连接两个数组,但只能让它们首尾相接。而展开语法可以让这样的操作变得极其简单:
|
2020-08-04 15:14:21 +08:00
|
|
|
|
|
|
|
```js
|
|
|
|
let thisArray = ['sage', 'rosemary', 'parsley', 'thyme'];
|
|
|
|
|
|
|
|
let thatArray = ['basil', 'cilantro', ...thisArray, 'coriander'];
|
|
|
|
// thatArray 现在是 ['basil', 'cilantro', 'sage', 'rosemary', 'parsley', 'thyme', 'coriander']
|
|
|
|
```
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
使用展开语法,我们像这样就可以实现一个用传统方法会写得很复杂且冗长的操作。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --instructions--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
我们已经定义了一个返回 `sentence` 变量的 `spreadOut` 函数。请修改这个函数,利用<dfn>展开语法</dfn>使该函数返回数组 `['learning', 'to', 'code', 'is', 'fun']`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --hints--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
`spreadOut` 应返回 `["learning", "to", "code", "is", "fun"]`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
assert.deepEqual(spreadOut(), ['learning', 'to', 'code', 'is', 'fun']);
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
`spreadOut` 函数里应用到展开语法。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
assert.notStrictEqual(spreadOut.toString().search(/[...]/), -1);
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
2020-08-04 15:14:21 +08:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --solutions--
|
|
|
|
|