Rails从数组中删除子数组

时间:2019-05-27 23:37:58

标签: ruby-on-rails ruby-on-rails-5

在我的Rails 5应用中,我有这样的东西:

a = [1,2,3]

a.map do |entry|
  entry.delete if condition == true
end

如果条件为真,这将删除该条目。

现在我有了这个

a = [[1,2],[2,3],[3,4]]

a.map do |entry|
  entry.delete if condition == true
end

这遍历了一个数组,但是现在entry是一个数组,删除应该删除整个entry,但是我得到了:

wrong number of arguments (given 0, expected 1)

有人知道我如何遍历数组数组并删除整个子数组吗?

2 个答案:

答案 0 :(得分:4)

尝试一下: xB.write((byte)0x7E); xB.write((byte)0x0); xB.write((byte)0x1F); xB.write((byte)0x17); xB.write((byte)0x0); // Frame ID xB.write((byte)0x00); // first byte xB.write((byte)0x13); // 2 xB.write((byte)0xA2); // 3 xB.write((byte)0x00); // 4 xB.write(addy5); // 5 xB.write(addy6); // 6 xB.write(addy7); // 7 xB.write(addy8);// 8 xB.write((byte)0xFF); // "10"67 xB.write((byte)0xFE);// 10"66" xB.write((byte)0x02); xB.write('D'); xB.write('1'); xB.write(bin[0]); xB.write('D'); xB.write('0'); xB.write(bin[1]); xB.write('D'); xB.write('2'); xB.write(bin[2]); xB.write('D'); xB.write('3'); xB.write(bin[3]); xB.write('D'); xB.write('5'); xB.write(bin[4]); xB.write('D'); xB.write('4'); xB.write(bin[5]); long sum = 0x17 + 0x13 + 0xA2 + addy5 + addy6 + addy7 + addy8 + 0xFF + 0xFE + 0x02 + 'D' + '1' + bin[0] + 'D' + '0' + bin[1] + 'D' + '2' + bin[2] + 'D' + '3' + bin[3] + 'D' + '5' + bin[4] + 'D' + '4' + bin[5]; xB.write((byte)0xFF - (sum & 0xFF));

例如:

a.delete_if {condition}

答案 1 :(得分:0)

您应该使用flat_map而不是使用地图,请参见:https://apidock.com/ruby/Enumerable/flat_map