2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
id: a39963a4c10bc8b4d4f06d7e
|
2021-01-12 08:18:51 -08:00
|
|
|
|
title: 过滤数组元素
|
2018-10-10 18:03:03 -04:00
|
|
|
|
challengeType: 5
|
2020-09-07 16:10:29 +08:00
|
|
|
|
forumTopicId: 16046
|
2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --description--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
|
在这道题目中,我们要写一个叫 `destroyer` 的函数。传入的第一个参数是一个数组,我们称他为初始数组。后续的参数数量是不确定的,可能有一个或多个。你需要做的是,从初始数组中移除所有与后续参数相等的元素,并返回移除元素后的数组。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
**注意:**
|
2021-01-12 08:18:51 -08:00
|
|
|
|
你可以使用 `arguments` 对象,也可以使用 `...`,即“剩余参数”(Rest Parameters)语法。
|
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
|
|
|
|
`destroyer([1, 2, 3, 1, 2, 3], 2, 3)` 应返回 `[1, 1]`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert.deepEqual(destroyer([1, 2, 3, 1, 2, 3], 2, 3), [1, 1]);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
|
`destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3)` 应返回 `[1, 5, 1]`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert.deepEqual(destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3), [1, 5, 1]);
|
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
|
`destroyer([3, 5, 1, 2, 2], 2, 3, 5)` 应返回 `[1]`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert.deepEqual(destroyer([3, 5, 1, 2, 2], 2, 3, 5), [1]);
|
|
|
|
|
```
|
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
|
`destroyer([2, 3, 2, 3], 2, 3)` 应返回 `[]`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert.deepEqual(destroyer([2, 3, 2, 3], 2, 3), []);
|
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
|
`destroyer(["tree", "hamburger", 53], "tree", 53)` 应返回 `["hamburger"]`。
|
2020-09-07 16:10:29 +08:00
|
|
|
|
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```js
|
2020-12-16 00:37:30 -07:00
|
|
|
|
assert.deepEqual(destroyer(['tree', 'hamburger', 53], 'tree', 53), [
|
|
|
|
|
'hamburger'
|
|
|
|
|
]);
|
|
|
|
|
```
|
2020-09-07 16:10:29 +08:00
|
|
|
|
|
2021-01-12 08:18:51 -08:00
|
|
|
|
`destroyer(["possum", "trollo", 12, "safari", "hotdog", 92, 65, "grandma", "bugati", "trojan", "yacht"], "yacht", "possum", "trollo", "safari", "hotdog", "grandma", "bugati", "trojan")` 应返回 `[12,92,65]`。
|
2020-09-07 16:10:29 +08:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
```js
|
|
|
|
|
assert.deepEqual(
|
|
|
|
|
destroyer(
|
|
|
|
|
[
|
|
|
|
|
'possum',
|
|
|
|
|
'trollo',
|
|
|
|
|
12,
|
|
|
|
|
'safari',
|
|
|
|
|
'hotdog',
|
|
|
|
|
92,
|
|
|
|
|
65,
|
|
|
|
|
'grandma',
|
|
|
|
|
'bugati',
|
|
|
|
|
'trojan',
|
|
|
|
|
'yacht'
|
|
|
|
|
],
|
|
|
|
|
'yacht',
|
|
|
|
|
'possum',
|
|
|
|
|
'trollo',
|
|
|
|
|
'safari',
|
|
|
|
|
'hotdog',
|
|
|
|
|
'grandma',
|
|
|
|
|
'bugati',
|
|
|
|
|
'trojan'
|
|
|
|
|
),
|
|
|
|
|
[12, 92, 65]
|
|
|
|
|
);
|
2018-10-10 18:03:03 -04:00
|
|
|
|
```
|
2020-08-13 17:24:35 +02:00
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
|
# --solutions--
|
|
|
|
|
|