将 .map 与嵌套二维数组一起使用

Using .map with a nested two-dimensional array

我有一个嵌套数组,如下所示:

aux = [["None", ""],["Average", "avg"],["Summation", "sum"],["Maximum", "max"],["Minimum", "min"],["Count", "count"],["Distinct Count", "distinctCount"],["Max Forever", "maxForever"],["Min Forever","minForever"],["Standard Deviation","stddev"]]

现在,我想要做的是将“1234”(这是一个示例)附加到每个数组的第二个元素的开头,而不是原始数组,如下所示:

new_aux = aux.map {|k| [k[0],k[1].prepend("1234")]}

问题是,原来的数组被改变了。我正在读这个,问题似乎是字符串的操作,因为如果我将该元素转换为符号,例如,原始数组没有改变,就像我想要的那样,但我不完全明白是什么这里有问题,我应该怎么做。

通过这样做,在 new_aux 我得到:

[["None", "1234"],
 ["Average", "1234avg"],
 ["Summation", "1234sum"],
 ["Maximum", "1234max"],
 ["Minimum", "1234min"],
 ["Count", "1234count"],
 ["Distinct Count", "1234distinctCount"],
 ["Max Forever", "1234maxForever"],
 ["Min Forever", "1234minForever"],
 ["Standard Deviation", "1234stddev"]]

这就是我想要的,问题是我在原始数组中有完全相同的东西,这是我不想要的。

prepend 会改变字符串本身,因此使用此方法可以更改源数组。使用字符串插值来实现您的目标 new_aux = aux.map {|k| [k[0],"1234#{k[1]}"]}