回答編集履歴

3

小さな誤字の修正。

2017/05/06 11:50

投稿

sutara79
sutara79

スコア26

test CHANGED
@@ -98,7 +98,7 @@
98
98
 
99
99
  ```javascript
100
100
 
101
- / 配列を作る
101
+ // 配列を作る
102
102
 
103
103
  var field1 = ['あ', 'あ', 'あ'];
104
104
 

2

参照渡しと値渡しの例を追加しました。

2017/05/06 11:50

投稿

sutara79
sutara79

スコア26

test CHANGED
@@ -53,3 +53,75 @@
53
53
  console.log(fields);
54
54
 
55
55
  ```
56
+
57
+
58
+
59
+ ### 追記: 参照渡しと値渡しの例
60
+
61
+
62
+
63
+ 【参照渡し】
64
+
65
+ ```javascript
66
+
67
+ // 配列を作る
68
+
69
+ var field1 = ['あ', 'あ', 'あ'];
70
+
71
+
72
+
73
+ // 配列をコピーする
74
+
75
+ // ※ これは参照渡しなので、実は中身は同じ
76
+
77
+ var field2 = field1;
78
+
79
+
80
+
81
+ // コピーした配列の中身を変える
82
+
83
+ field2[1] = 'い';
84
+
85
+
86
+
87
+ // すると、元の配列の中身も変わってしまう
88
+
89
+ console.log(field1);
90
+
91
+ console.log(field2);
92
+
93
+ ```
94
+
95
+
96
+
97
+ 【値渡し】
98
+
99
+ ```javascript
100
+
101
+ / 配列を作る
102
+
103
+ var field1 = ['あ', 'あ', 'あ'];
104
+
105
+
106
+
107
+ // 配列をコピーする
108
+
109
+ // ※ 新たに配列が作られる
110
+
111
+ var field2 = field1.concat();
112
+
113
+
114
+
115
+ // コピーした配列の中身を変える
116
+
117
+ field2[1] = 'い';
118
+
119
+
120
+
121
+ // 今度は、元の配列の中身は変わらない
122
+
123
+ console.log(field1);
124
+
125
+ console.log(field2);
126
+
127
+ ```

1

ソースコードに誤りがあったので訂正しました。

2016/10/23 10:57

投稿

sutara79
sutara79

スコア26

test CHANGED
@@ -4,13 +4,13 @@
4
4
 
5
5
  ```javascript
6
6
 
7
- fields.push([].concat(field));
7
+ fields.push(field.concat());
8
8
 
9
9
  ```
10
10
 
11
11
 
12
12
 
13
- - 参照: [javascript での配列のコピーの方法 - Qiita](http://qiita.com/hshimo/items/04acd7031dbf9c5f4081)
13
+ - 参照: [【Javascript】値渡しと参照渡しについてあらためてまとめてみる - Qiita](http://qiita.com/migi/items/3417c2de685c368faab1)
14
14
 
15
15
 
16
16
 
@@ -22,7 +22,7 @@
22
22
 
23
23
  var fields = [],
24
24
 
25
- var field = [];
25
+ field = [];
26
26
 
27
27
 
28
28
 
@@ -36,9 +36,7 @@
36
36
 
37
37
  for(i=0;i<3;i++){
38
38
 
39
- // fields.push(field);
40
-
41
- fields.push([].concat(field));
39
+ fields.push(field.concat());
42
40
 
43
41
  }//格納(全体の完成)
44
42