回答編集履歴

3

注意点を追加

2018/04/06 04:09

投稿

defghi1977
defghi1977

スコア4756

test CHANGED
@@ -49,3 +49,11 @@
49
49
  ```
50
50
 
51
51
  であれば, 「2番めの値」に意味が出てきます.
52
+
53
+
54
+
55
+
56
+
57
+ NOTE:
58
+
59
+ この観点に従えば`Object.keys`, `Object.entries`, `Object.values`の各メソッドが生成する配列の並びにも意味がないため, これらのメソッドは単に「オブジェクトの内容に**順不同の処理を施す**」用途にしか使えません.

2

引用を追加

2018/04/06 04:09

投稿

defghi1977
defghi1977

スコア4756

test CHANGED
@@ -6,7 +6,15 @@
6
6
 
7
7
 
8
8
 
9
- もし、順序が重要なのであれば, オブジェクトではなく配列を使って下さい.
9
+ > An object is a member of the type Object. It is **an unordered collection of properties** each of which contains a primitive value, object, or function. A function stored in a property of an object is called a method.
10
+
11
+
12
+
13
+ 意訳:オブジェクトは**順序付けされていないプロパティの集まり**です.
14
+
15
+
16
+
17
+ つまり, **オブジェクトのキーの順番に意味がない**ため, 順序を意識したコードはそれ自体正しく動作する保証がありません. もし、順序が重要なのであれば, オブジェクトではなく配列を使って下さい.
10
18
 
11
19
 
12
20
 

1

コードを追加

2018/04/06 04:05

投稿

defghi1977
defghi1977

スコア4756

test CHANGED
@@ -3,3 +3,41 @@
3
3
 
4
4
 
5
5
  [https://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order](https://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order)
6
+
7
+
8
+
9
+ もし、順序が重要なのであれば, オブジェクトではなく配列を使って下さい.
10
+
11
+
12
+
13
+ ```JavaScript
14
+
15
+ let arr = [
16
+
17
+ {b: "B"},
18
+
19
+ {c: "C"},
20
+
21
+ {a: "A"}
22
+
23
+ ];
24
+
25
+ ```
26
+
27
+ とか
28
+
29
+ ```JavaScript
30
+
31
+ let arr = [
32
+
33
+ ["b", "B"],
34
+
35
+ ["c", "C"],
36
+
37
+ ["a", "A"]
38
+
39
+ ];
40
+
41
+ ```
42
+
43
+ であれば, 「2番めの値」に意味が出てきます.