2014-01-31 33 views
0

在Ruby中我可以做這樣的事情each_slice像紅寶石的javascript使用蛋白石

irb(main):038:0> (1..100).each_slice(5) {|x| p x} 
[1, 2, 3, 4, 5] 
[6, 7, 8, 9, 10] 
[11, 12, 13, 14, 15] 
[16, 17, 18, 19, 20] 
[21, 22, 23, 24, 25] 
[26, 27, 28, 29, 30] 
[31, 32, 33, 34, 35] 
[36, 37, 38, 39, 40] 
[41, 42, 43, 44, 45] 
[46, 47, 48, 49, 50] 
[51, 52, 53, 54, 55] 
[56, 57, 58, 59, 60] 
[61, 62, 63, 64, 65] 
[66, 67, 68, 69, 70] 
[71, 72, 73, 74, 75] 
[76, 77, 78, 79, 80] 
[81, 82, 83, 84, 85] 
[86, 87, 88, 89, 90] 
[91, 92, 93, 94, 95] 
[96, 97, 98, 99, 100] 

也許我生鏽的JavaScript,雖然已經做了我的日常工作。我已經在js裏已經有好幾天了。有什麼建議麼?

預先感謝您!

+0

已經有人在這裏找到答案: http://stackoverflow.com/questions/10249658/equivalent-of-ruby-enumerableeach-slice-in-javascript – LukeS

回答

1

退房蛋白石! http://opalrb.org/try/

複製並粘貼你的代碼有...

如果你想知道如何開始使用原始的HTML和JavaScript,運行IRB,然後鍵入以下內容:

require 'opal' 
File.open('opal.js', 'w') do |f| 
    f.write(Opal::Builder.build('opal')) 
end 
(做 gem install opal後)

,這將產生opal.js

爲了得到您的Ruby代碼的JavaScript,你可以在IRB做到:

puts Opal.compile("(1..100).each_slice(5) {|x| p x}") 

你得到的Ruby代碼轉換爲JavaScript:

/* Generated by Opal 0.5.5 */ 
(function($opal) { 
    var $a, $b, TMP_1, self = $opal.top, $scope = $opal, nil = $opal.nil, $breaker = $opal.breaker, $slice = $opal.slice, $range = $opal.range; 
    $opal.add_stubs(['$each_slice', '$p']); 
    return ($a = ($b = ($range(1, 100, false))).$each_slice, $a._p = (TMP_1 = function(x){var self = TMP_1._s || this;if (x == null) x = nil; 
    return self.$p(x)}, TMP_1._s = self, TMP_1), $a).call($b, 5) 
})(Opal); 

現在在同一目錄下創建一個新的HTML文件作爲opal.js

<html> 
<head> 
<script src='opal.js'></script> 
<script> 
// copy the javascript above here 
</script> 
</head> 
</html> 

打開HTML文件和檢查控制檯,你應該看到:

[1, 2, 3, 4, 5] 
[6, 7, 8, 9, 10] 
[11, 12, 13, 14, 15] 
[16, 17, 18, 19, 20] 
[21, 22, 23, 24, 25] 
[26, 27, 28, 29, 30] 

etc ...

+0

問候,嘿嘿 謝謝你的建議!我喜歡!但它需要我安裝一個庫..這將工作,但添加一個新的庫不是我在想什麼......是否有任何工作像ruby中的each_slice而不添加新的庫?儘管如此,我還是忍受和強調。 – Hokutosei

+0

有人在上面的評論中給了你一個鏈接=)...我更新了我的答案,告訴你如何開始使用歐泊,以防你願意=) – Abdo

+0

好吧!,我會試試看!這真是太棒了,再次感謝你! – Hokutosei