假设我正在查询水果列表,然后仅将水果的 ID 和名称收集到 @fruit 中。
[32, "apple"],
[8, "bannana"],
[10, "cantelope"],
[11, "grape"],
[15, "orange"],
[41, "peach"],
[22, "watermelon"]
@fruit 正在 Select 帮助器中使用。 @fruit 索引 0 处的“apple”将是 select 的选定值(第一个选项)。这是一个虚构的示例,但默认情况下我总是通过名称(而不是通过 ID)知道“orange”是什么。我需要“橙色”作为选择标签的选定值(第一个选项)。
":prompt => 'orange'" 只是在选择中添加了“orange”的第二个实例。到目前为止,我在谷歌上发现的所有内容似乎都是关于向列表中添加额外的值或空白。
由于数组的索引 0 始终成为选定值(如果选择助手中没有使用提示或空白),有没有办法我可以找到包含名称“orange”的索引(@fruit[x].name == 'orange'),并将其移动到索引 0,同时保留列表其余部分中现有的 alpha 排序?所以,@fruit 数组看起来像:
@fruit[0] [15, "orange"],
@fruit[1] [32, "apple"],
@fruit[2] [8, "bannana"],
@fruit[3] [10, "cantelope"],
@fruit[4] [11, "grape"],
@fruit[5] [41, "peach"],
@fruit[6] [22, "watermelon"]
我现在唯一能想到的就是遍历@fruit,如果找到“orange”,则将其添加到新数组中。然后再次遍历 @fruit 数组并添加任何名称不为“orange”的内容。我不知道如何写出来,但它似乎可以满足我的要求。也许有一些简单的方法可以做到这一点,我缺少(指定数组中的哪个索引是第一个写入的选项)?
谢谢你!