在.each中使用公式后,数组中的数字不会更改

Blu*_*nd2 0 ruby arrays map ruby-1.8.7

我有的是:

p(array)
array.each { |c| c=c*y**z-1 ; z=z+1  }
p(array)
Run Code Online (Sandbox Code Playgroud)

该数组是:

[35, 35, 35]
Run Code Online (Sandbox Code Playgroud)

y是36,z是一个计数器,c是数组中的值.

在我得到公式之前:

[35, 35, 35]

[formula happens]
Run Code Online (Sandbox Code Playgroud)

公式后:

[35, 35, 35]
Run Code Online (Sandbox Code Playgroud)

Мал*_*евъ 7

要修改数组本身,请使用#map!,而不是#each方法Array.因为该#each方法仅用于Array包含Enumerable模块的值枚举或其他类.因此,请执行以下操作:

array.map! { |c| c=c*y**z-1 ; z=z+1 ; c }
Run Code Online (Sandbox Code Playgroud)