将一组任意嵌套的整数数组展平为ruby中的整数平面数组

时间:2016-02-10 02:03:00

标签: ruby-on-rails arrays ruby nested integer

如何编写一个代码片段Ruby,它将一组任意嵌套的整数数组展平为一个整数的平面数组。例如[[1,2,[3]],4] - > [1,2,3,4]。请不要使用任何一种语言的任何内置展平功能。

2 个答案:

答案 0 :(得分:6)

这是一种不使用内置 <ul class="icon"> <li class="info">aaaaaa</li> <li class="info">bbbbb</li> <li class="info">cccccccccccc</li> <li class="info">ddd</li> </ul> 方法的解决方案。它涉及递归

ul.icon { 
    padding-left:20px; 
    list-style:none; 
}

li.icon { 
    margin-bottom:10px; 
}

ul.icon li:before {    
    font-family: 'FontAwesome';
    margin:0 5px 0 -15px;
    font-weight: bold;
}

ul.icon li.info:before {
    content: "->";
    color: green;
}

ul.icon li:hover {
         cursor: pointer;
         cursor: hand;
         background-color: rgb(242, 105, 34);
}

li.info {
        font-weight: bold;
        transition: all .2s ease-in-out;
}

li.info:hover {
    font-style: italic;
    transform: scale(1.1);
}

我在irb中测试了这个。

flatten

答案 1 :(得分:4)

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

如果在{例如} arr中只包含数字,则可以(而不是&#34;应该&#34;)执行此操作:

eval "[#{arr.to_s.delete('[]')}]"
 => [1, 2, 3, 4]