当前位置 : 主页 > 编程语言 > ruby >

ruby – 如何将两个不同数组中的值映射为等效对象数组的属性?

来源:互联网 收集:自由互联 发布时间:2021-06-23
我有两个数组: a = [a1, ..., an]b = [b1, ..., bn] 我想从这些数组创建一个对象数组,其中一个对象有字段a和b.所以它看起来像: o = [o1, ..., on] 其中o1.a = a1和o1.b = b1和o2.a = a2和o2.b = b2等等. 现在
我有两个数组:

a = [a1, ..., an]
b = [b1, ..., bn]

我想从这些数组创建一个对象数组,其中一个对象有字段a和b.所以它看起来像:

o = [o1, ..., on]

其中o1.a = a1和o1.b = b1和o2.a = a2和o2.b = b2等等.

现在,我有:

Obj = Struct.new(:a, :b)
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
objs = []
// Is there a better way of doing the following or is it okay?
a.zip(b).each do |ai|
  objs << Obj.new(ai[0], ai[1])
a.zip(b).map { |args| Obj.new(*args) }

根据你的编辑:

a.zip(b).map { |(a, b)| Obj.new(a, b) }
网友评论