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

回答編集履歴

2

テキスト追加

2018/01/09 11:11

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -4,12 +4,15 @@
4
4
 
5
5
  **ある配列 ary のインデクス n の位置からm 個を 値 x で上書きする。**
6
6
 
7
- ためには、以下のように書くとよいです。
7
+ ためには、以下のように書くとよいです。(もしかしたら他のより良い書き方があるかもしれませんが)
8
8
 
9
9
  ```ruby
10
10
  ary[n, m] = Array.new(m, x)
11
11
  ```
12
12
 
13
+ 参考: [Rubyリファレンス:[]= (Array)](https://ref.xaio.jp/ruby/classes/array/element_assign)
14
+
15
+
13
16
  以下は、上記の例です。
14
17
 
15
18
  ```ruby
@@ -21,4 +24,21 @@
21
24
  ary[3, 4] = Array.new(4, 999)
22
25
 
23
26
  p ary # => [0, 1, 2, 999, 999, 999, 999, 7, 8, 9]
24
- ```
27
+ ```
28
+
29
+ 上記にそって、ご質問にある
30
+ ```ruby
31
+ chairs[f_chair,cnt].map{|c| c = true} <--ここに問題あり
32
+ ```
33
+ の部分を
34
+ ```ruby
35
+ chairs[f_chair,cnt] = Array.new(cnt, true)
36
+ ```
37
+
38
+ とすれば、(実際に動かして試してはいませんが)とりあえず、
39
+
40
+ > 着席番にtrueをいれたいのですがtrueになりません。
41
+
42
+ という問題は解決するかと思います。
43
+
44
+ 以上参考になれば幸いです。

1

テキスト追加

2018/01/09 11:10

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -8,4 +8,17 @@
8
8
 
9
9
  ```ruby
10
10
  ary[n, m] = Array.new(m, x)
11
+ ```
12
+
13
+ 以下は、上記の例です。
14
+
15
+ ```ruby
16
+ ary = Array.new(10) { |i| i }
17
+
18
+ p ary # => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
19
+
20
+ # インデクス 3 の位置から、4 個の要素を 999 にする。
21
+ ary[3, 4] = Array.new(4, 999)
22
+
23
+ p ary # => [0, 1, 2, 999, 999, 999, 999, 7, 8, 9]
11
24
  ```