105 lines
2.2 KiB
Markdown
105 lines
2.2 KiB
Markdown
![]() |
---
|
||
|
id: a39963a4c10bc8b4d4f06d7e
|
||
|
title: 検索して破棄する
|
||
|
challengeType: 5
|
||
|
forumTopicId: 16046
|
||
|
dashedName: seek-and-destroy
|
||
|
---
|
||
|
|
||
|
# --description--
|
||
|
|
||
|
最初の配列 (`destroyer` 関数の最初の引数) が与えられ、続いて 1 つ以上の引数が与えられます。 これらの引数と同じ値を持つすべての要素を最初の配列から削除してください。
|
||
|
|
||
|
**注:** `arguments` オブジェクトを使用する必要があります。
|
||
|
|
||
|
# --hints--
|
||
|
|
||
|
`destroyer([1, 2, 3, 1, 2, 3], 2, 3)` は `[1, 1]` を返す必要があります。
|
||
|
|
||
|
```js
|
||
|
assert.deepEqual(destroyer([1, 2, 3, 1, 2, 3], 2, 3), [1, 1]);
|
||
|
```
|
||
|
|
||
|
`destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3)` は `[1, 5, 1]` を返す必要があります。
|
||
|
|
||
|
```js
|
||
|
assert.deepEqual(destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3), [1, 5, 1]);
|
||
|
```
|
||
|
|
||
|
`destroyer([3, 5, 1, 2, 2], 2, 3, 5)` は `[1]` を返す必要があります。
|
||
|
|
||
|
```js
|
||
|
assert.deepEqual(destroyer([3, 5, 1, 2, 2], 2, 3, 5), [1]);
|
||
|
```
|
||
|
|
||
|
`destroyer([2, 3, 2, 3], 2, 3)` は `[]` を返す必要があります。
|
||
|
|
||
|
```js
|
||
|
assert.deepEqual(destroyer([2, 3, 2, 3], 2, 3), []);
|
||
|
```
|
||
|
|
||
|
`destroyer(["tree", "hamburger", 53], "tree", 53)` は `["hamburger"]` を返す必要があります。
|
||
|
|
||
|
```js
|
||
|
assert.deepEqual(destroyer(['tree', 'hamburger', 53], 'tree', 53), [
|
||
|
'hamburger'
|
||
|
]);
|
||
|
```
|
||
|
|
||
|
`destroyer(["possum", "trollo", 12, "safari", "hotdog", 92, 65, "grandma", "bugati", "trojan", "yacht"], "yacht", "possum", "trollo", "safari", "hotdog", "grandma", "bugati", "trojan")` は `[12,92,65]` を返す必要があります。
|
||
|
|
||
|
```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]
|
||
|
);
|
||
|
```
|
||
|
|
||
|
# --seed--
|
||
|
|
||
|
## --seed-contents--
|
||
|
|
||
|
```js
|
||
|
function destroyer(arr) {
|
||
|
return arr;
|
||
|
}
|
||
|
|
||
|
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
|
||
|
```
|
||
|
|
||
|
# --solutions--
|
||
|
|
||
|
```js
|
||
|
function destroyer(arr) {
|
||
|
var hash = Object.create(null);
|
||
|
[].slice.call(arguments, 1).forEach(function(e) {
|
||
|
hash[e] = true;
|
||
|
});
|
||
|
return arr.filter(function(e) { return !(e in hash);});
|
||
|
}
|
||
|
|
||
|
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
|
||
|
```
|