Skip to content

Commit e99193d

Browse files
committed
review - keys-values-entries
1 parent bac36c5 commit e99193d

File tree

1 file changed

+11
-11
lines changed
  • 1-js/05-data-types/08-keys-values-entries

1 file changed

+11
-11
lines changed

1-js/05-data-types/08-keys-values-entries/article.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11

22
# Object.keys, values, entries
33

4-
個別のデータ構造から離れて、それらの繰り返し処理について話しましょう。
4+
ここでは、個々のデータ構造から離れて、それらの繰り返し処理について話しましょう。
55

66
前のチャプターで、`map.keys()`, `map.values()`, `map.entries()` と言うメソッドを見ました。
77

8-
これらのメソッドは一般的なものであり、データ構造に対してそれを使うことは一般的な意見の一致です。独自のデータ構造を作成するときはそれらも実装しておく方がよいです
8+
これらのメソッドは一般的なものであり、データ構造に対して利用することは共通認識です。そのため、もし独自のデータ構造を作成するときには、それらも実装しておく方がよいです
99

1010
これらは以下でサポートされています:
1111

1212
- `Map`
1313
- `Set`
1414
- `Array` (`arr.values()` を除く)
1515

16-
普通のオブジェクトもまた同様のメソッドをサポートします。しかし構文は少し異なります
16+
通常のオブジェクトも同様のメソッドをサポートしますが、構文は少し異なります
1717

1818
## Object.keys, values, entries
1919

@@ -23,18 +23,18 @@
2323
- [Object.values(obj)](mdn:js/Object/values) -- 値の配列を返します。
2424
- [Object.entries(obj)](mdn:js/Object/entries) -- `[key, value]` ペアの配列を返します。
2525

26-
...しかしその違いに注意してください(例として map との比較です。):
26+
しかし、それらの違いに注意してください(例として map との比較です。):
2727

2828
| | Map | Object |
2929
|-------------|------------------|--------------|
30-
| 構文 | `map.keys()` | `Object.keys(obj)` です。 `obj.keys()` ではありません。 |
30+
| 構文 | `map.keys()` | `Object.keys(obj)`. `obj.keys()` ではありません。 |
3131
| 戻り値 | iterable | "本当の" Array |
3232

33-
最初の違いは、`Object.keys(obj)` と呼ばないといけないことです。`obj.keys()` ではありません
33+
最初の違いは、`obj.keys()` ではなく、`Object.keys(obj)` と呼ぶ必要がある点です
3434

35-
なぜそうなっているのでしょう?主な理由は柔軟性です。JavaScript ではオブジェクトは全ての複雑な構造のベースであることを覚えておいてください。従って、独自の `order.values()` メソッドを実装した `order` のような独自のオブジェクトを持つかもしれません。そして、その上でもまだ `Object.values(order)` を呼ぶことができます。
35+
なぜそうなっているのでしょう?主な理由は柔軟性です。JavaScript ではオブジェクトはすべての複雑な構造のベースであることを忘れないでください。そのため、独自の `order.values()` メソッドを実装する `order` という独自のオブジェクトがあるかもしれません。それでも `Object.values(order)` を呼ぶことができます。
3636

37-
2つ目の違いは、`Object.*` メソッドが "本当の" 配列オブジェクトを返すことです、単なる iterable ではなく。これは主に歴史的な理由です。
37+
2つ目の違いは、`Object.*` メソッドが単なる iterable ではなく "本当の" 配列オブジェクトを返すことです。これは主に歴史的な理由です。
3838

3939
例:
4040

@@ -63,8 +63,8 @@ for (let value of Object.values(user)) {
6363
}
6464
```
6565

66-
## Object.keys/values/entries はシンボリックプロパティを無視します
66+
## Object.keys/values/entries は Symbol を使っているプロパティを無視します
6767

68-
ちょうど `for..in` ループのように、これらのメソッドはキーとして `Symbol(...)` を使っているプロパティを無視します。
68+
`for..in` ループのように、これらのメソッドはキーとして `Symbol(...)` を使っているプロパティを無視します。
6969

70-
通常それは便利です。しかし、もしもシンボリックなキーも同様にしたい場合、別のメソッド [Object.getOwnPropertySymbols](mdn:js/Object/getOwnPropertySymbols) があります。これはシンボリックのキーのみの配列を返します。また、メソッド [Reflect.ownKeys(obj)](mdn:js/Reflect/ownKeys)*全ての* キーを返します。
70+
通常それは便利です。しかし、もしもこのようなキーも同様に扱いたい場合は、別のメソッド [Object.getOwnPropertySymbols](mdn:js/Object/getOwnPropertySymbols) があります。これは Symbol を使っているキーのみの配列を返します。また、メソッド [Reflect.ownKeys(obj)](mdn:js/Reflect/ownKeys)*すべての* キーを返します。

0 commit comments

Comments
 (0)