arrays - 用另外两个数组的值替换数组中的 nil 元素

标签 arrays ruby

我有三个数组:gabg 有两组一个或多个连续的 nil 值。第一(第二)组包含 a.size (b.size) nil。我希望用 a (b) 的相应元素替换第一(第二)组中的每个 nil。例如,如果:

g = [1, 2, nil, nil, nil, 3, nil, nil, nil, nil]
a = [55, 45, 56]
b = [100, 200, 300, 400]

我希望g成为:

 [1, 2, 55, 45, 56, 3, 100, 200, 300, 400]

我该怎么做?

最佳答案

[]= 方法可以这样赋值,它的一种变体是

foo[insertion_point, length] = values

(还有一个版本是取范围而不是这对值)

g = [1,2,nil,nil,nil,3,nil,nil,nil,nil]
a = [55,45,56]
b = [100,200,300,400]

g[2, a.size] = a
g #=> [1, 2, 55, 45, 56, 3, nil, nil, nil, nil]
g[6, b.size] = b
g #=> [1, 2, 55, 45, 56, 3, 100, 200, 300, 400]

只要间隙与您要插入的数组的大小相同,您就不需要对 nils 做任何事情

关于arrays - 用另外两个数组的值替换数组中的 nil 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31228530/

相关文章:

php - 比较并显示字符串/数组中的字符或不存在的字符

c++ - 编译器显示错误消息 "makes pointer from integer without cast"(反转数组)。我该如何解决这个问题?

c++ - 使用winsock vc++通过UDP发送数字数组

ruby - Gemfile.lock 应该包含在 .gitignore 中吗?

javascript - Ajax 调用 Rails 返回缺少模板

arrays - SWIFT - 将 Int append 到 NSUser 默认字典中的数组

c# - 在c#中初始化多维对象数组

ruby-on-rails - 使用 mini_magick 调整图像大小

ruby-on-rails - 可以将自定义路径附加到 Rails 路由的 'new' 路径吗?

Ruby range.reduce 与哈希累加器