How can I transpose different sized ruby arrays?

前端 未结 3 1363
萌比男神i
萌比男神i 2020-12-17 22:38

I have an array:

arr=[[1,2,3],[4,5],[6]],

I have the following code:

arr.transpose 

but it doesn\'t work,

3条回答
  •  心在旅途
    2020-12-17 22:59

    If the length of the subarrays don’t match, an IndexError is raised.

    irb(main):002:0> arr=[[1,2,3],[4,5],[6]]
    => [[1, 2, 3], [4, 5], [6]]
    irb(main):003:0> arr.transpose
    IndexError: element size differs (2 should be 3)
        from (irb):3:in `transpose'
        from (irb):3
        from /Users/liuxingqi/.rvm/rubies/ruby-2.1.2/bin/irb:11:in `
    '

    should be:

    irb(main):004:0> arr=[[1,2,3],[4,5,6]]
    => [[1, 2, 3], [4, 5, 6]]
    irb(main):005:0> arr.transpose
    => [[1, 4], [2, 5], [3, 6]]
    

    or

    irb(main):006:0> arr=[[1,2],[3,4],[5,6]]
    => [[1, 2], [3, 4], [5, 6]]
    irb(main):007:0> arr.transpose
    => [[1, 3, 5], [2, 4, 6]]
    

提交回复
热议问题