Smalltalk 阵列操作

Jep*_*Tan 3 arrays oop smalltalk class object

我是使用 smalltalk 的新手,我试图在数组中迭代一个数组,并评估每个数组成员是否可以被 4 整除,如果为 true,它将使用 select 方法返回包含该元素的字节数组这是我的代码:

| anArray result |
anArray := #(#(1 2 3 3 4 6 7) #(6 7 6 9 9 4 7 6) #(11 12 13 14 15 14)).
anArray select: [ :each | 
     each do: [ :ea | 
         ea \\ 4 == 0 ifTrue: [ Transcript show: each printString ]
     ]
]
Run Code Online (Sandbox Code Playgroud)

问题是它在select方法中需要一个布尔条件。您知道使用 select 方法返回上述输出的其他方法吗?

谢谢!

Jam*_*ter 5

欢迎使用 Smalltalk!你的问题有点模棱两可。是否要选择任何元素都可以被 4 整除的每个内部数组?如果是这样,请尝试以下操作:

| anArray result |
anArray := #(#(1 2 3 3 4 6 7) #(6 7 6 9 9 4 7 6) #(11 12 13 14 15 14)).
anArray select: [ :eachArray | 
    eachArray anySatisfy: [ :eachElement | 
        eachElement \\ 4 == 0.
    ].
].
Run Code Online (Sandbox Code Playgroud)

还是要打印可被 4 整除的内部数组中的每个元素?如果是这样,请尝试以下操作:

| anArray result |
anArray := #(#(1 2 3 3 4 6 7) #(6 7 6 9 9 4 7 6) #(11 12 13 14 15 14)).
anArray do: [ :eachArray | 
    eachArray do: [ :eachElement |
        eachElement \\ 4 == 0 ifTrue: [
            Transcript cr; show: eachElement.
        ].
    ].
].
Run Code Online (Sandbox Code Playgroud)