在我的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)
有人知道我如何遍历数组数组并删除整个子数组吗?
答案 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