在 Ruby 中,如何用潜在的多个元素替换数组中的元素?

Dav*_*ave 4 ruby arrays replace

使用 Ruby 2.4。我有一个字符串数组。如何用潜在的多个元素替换数组中的一个元素?我有

phrases[index] = tokens 
Run Code Online (Sandbox Code Playgroud)

然而,标记是一个数组,现在这会产生一个带有字符串和数组的短语数组......

["abc", ["a", "b"], "123"]
Run Code Online (Sandbox Code Playgroud)

如果标记是 ["a", "b"] 并且索引是 1,我希望结果是

["abc", "a", "b", "123"]
Run Code Online (Sandbox Code Playgroud)

我怎么做?

fal*_*tru 5

您可以指定startlength使用Array#[]=; 替换元素start索引中的子数组length

或指明range;替换由索引范围指定的子数组。

phrases = ["abc", "token_placeholder", "123"]
tokens = ["a", "b"]
index = 1
phrases[index, 1] = tokens
#       ^^^^^^^^^ ------------------ start and length

# OR phrases[index..index] = tokens
#            ^^^^^^^^^^^^ -------------- range

phrases # => ["abc", "a", "b", "123"]
Run Code Online (Sandbox Code Playgroud)

  • 很好,我从来没有遇到过这种语法。很高兴知道! (2认同)