数组替换/推送

时间:2016-12-23 16:23:31

标签: arrays ruby

再次感谢您抽出宝贵时间。我有一个问题,我正在做一些功课。

问题:我想用字符串替换某些可被某个数字整除的数组值。现在,我使用.flatten方法,并想知道我是否需要参数

  

x%3 == 0&& x%5 == 0

对于我目前用于下面显示的情况的方法,这是可能的。 谢谢!

<ion-header>
<ion-navbar color="dark">
  <button ion-button menuToggle="menujoinus">
  <ion-icon name="menu"></ion-icon>
</button>
<ion-title>JOIN US</ion-title>
</ion-navbar>
</ion-header>

<ion-menu [content]="joinuscontent" id="menujoinus">
<ion-content> 
<ion-list> 
    <button ion-button block icon-right color="secondary"   menuClose="menujoinus">Close
    <ion-icon name="close"></ion-icon>
    </button>
    <button ion-item icon-left (click)="openPageFieldguides()">
        <ion-icon name="compass"></ion-icon>
        Field Guides 
    </button> 
    <button ion-item icon-left (click)="openPageVolunteers()">
        <ion-icon name="clipboard"></ion-icon>
        Volunteers 
    </button>
    <button ion-item icon-left (click)="openPageOwner()">
        <ion-icon name="key"></ion-icon>
        Owners
    </button> 
  </ion-list>
  </ion-content> 
  </ion-menu>
  <ion-nav #joinuscontent [root]="rootPage"></ion-nav>

1 个答案:

答案 0 :(得分:2)

只需更改订单。

由于15优先于3和5,因此您的代码应以15开头。

Divisible by 3 and by 5相当于divisible by 15

bcd应该是字符串而不是数组。

a = (1..10_000).to_a
b = 'string1'
c = 'string2'
d = b + c

a.map! { |x| x % 15 == 0 ? d : x }.flatten! 
a.map! { |x| x % 3 == 0  ? b : x }.flatten!
a.map! { |x| x % 5 == 0  ? c : x }.flatten!
puts a

输出:

1
2
string1
4
string2
string1
7
8
string1
string2
11
string1
13
14
string1string2
16
17
string1
19
string2
string1
22
23
string1
string2
26

你也可以写:

a.map! do |x|
  if    x % 15 == 0 then d
  elsif x %  5 == 0 then c
  elsif x %  3 == 0 then b
  else x
  end
end