0

从外部传感器创建一个阵列,并且该阵列被限制在一个尺度上。

这是示例代码:

(
~weight = 70;
~array = ((~weight - 12) .. ~weight);
l = Scale.majorPentatonic.degrees; // pentatonic scale
j = (~array).collect { |i| i.nearestInScale(l, 12)}
)

这会产生一个数组,但会重复它与比例匹配的注释,例如:

[ 57, 57, 60, 62, 62, 64, 64, 64, 67, 67, 69, 69, 69 ]

如何将此数组过滤为仅唯一值,使其如下所示:

[ 57, 60, 62, 64, 67, 69 ]

4

1 回答 1

1

j.as(Set).as(Array).sort;

您可以将 Array 转换为 Set 并再次转换回来以删除重复的项目。Set 是一个无序集合,因此您必须对新数组进行排序才能获得您想要的结果。

于 2018-10-11T10:53:37.883 回答