質問するログイン新規登録

回答編集履歴

3

注意点を追加

2018/04/06 04:09

投稿

defghi1977
defghi1977

スコア4756

answer CHANGED
@@ -23,4 +23,8 @@
23
23
  ["a", "A"]
24
24
  ];
25
25
  ```
26
- であれば, 「2番めの値」に意味が出てきます.
26
+ であれば, 「2番めの値」に意味が出てきます.
27
+
28
+
29
+ NOTE:
30
+ この観点に従えば`Object.keys`, `Object.entries`, `Object.values`の各メソッドが生成する配列の並びにも意味がないため, これらのメソッドは単に「オブジェクトの内容に**順不同の処理を施す**」用途にしか使えません.

2

引用を追加

2018/04/06 04:09

投稿

defghi1977
defghi1977

スコア4756

answer CHANGED
@@ -2,8 +2,12 @@
2
2
 
3
3
  [https://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order](https://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order)
4
4
 
5
- もし、順序が重要なのであれば, オブジェクトではなく配列を使って下さい.
5
+ > 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.
6
6
 
7
+ 意訳:オブジェクトは**順序付けされていないプロパティの集まり**です.
8
+
9
+ つまり, **オブジェクトのキーの順番に意味がない**ため, 順序を意識したコードはそれ自体正しく動作する保証がありません. もし、順序が重要なのであれば, オブジェクトではなく配列を使って下さい.
10
+
7
11
  ```JavaScript
8
12
  let arr = [
9
13
  {b: "B"},

1

コードを追加

2018/04/06 04:05

投稿

defghi1977
defghi1977

スコア4756

answer CHANGED
@@ -1,3 +1,22 @@
1
1
  不可能です. `Object`のキーの並びは**固定ではありません**.
2
2
 
3
- [https://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order](https://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order)
3
+ [https://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order](https://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order)
4
+
5
+ もし、順序が重要なのであれば, オブジェクトではなく配列を使って下さい.
6
+
7
+ ```JavaScript
8
+ let arr = [
9
+ {b: "B"},
10
+ {c: "C"},
11
+ {a: "A"}
12
+ ];
13
+ ```
14
+ とか
15
+ ```JavaScript
16
+ let arr = [
17
+ ["b", "B"],
18
+ ["c", "C"],
19
+ ["a", "A"]
20
+ ];
21
+ ```
22
+ であれば, 「2番めの値」に意味が出てきます.