Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Some Javascript
    useful perhaps
他山之石,可以攻玉
Stones from other hills may serve
to polish the jade of this one.

advice from others may help one
overcome one's shortcomings.
Ruby
           A Programmer’s Best Friend


This time we use Ruby to polish our
               Jade.
Integer.times


                    (10).times(function
10.times do |i| 
                    (i){

print i*10, " "
                    
print( i*10 + “ ”);
end
                    });
Number.step
1.step(10, 2) { |i| print i, " " }

Math::E.step(Math::PI, 0.2) { |f| print f, " " }



(1).step(function(i){ print(i); }, 10, 2);

Math.E.step(function(f){ print(f); },
Number Object

         modulo     abs
  ceil
             floor
round
             step
String.capitalise
"hello".capitalize #=> "Hello"
"HELLO".capitalize#=> "Hello"
"123ABC".capitalize#=>
"123abc"
"hello".capitalize() > "Hello"
"HELLO".capitalize() > "Hello" 
"123ABC".capitalize() > "123abc"
String.each_char

"hello".each_char {|c| print c, ' '} #=> "h e l l o
"




“hello”.each_char (function(c) {return c+” ”}) > “h
e l l o ”
String.insert
"abcd".insert(-3, 'X')   #=> 'abXcd'
"abcd".insert(-1, 'X')   #=> 'abcdX'
"abcd".insert(1, 'X')    #=> 'aXbcd'

"abcd".insert(-3, 'X')   > 'abXcd'
"abcd".insert(-1, 'X')   > 'abcdX'
"abcd".insert(1, 'X')    > 'aXbcd'
String.reverse

"Hello".reverse     #=> "olleh"




"Hello".reverse()   > "olleh"
String Object

        casecmp      insert
each_char
            capitalise
strip                 swapcase
          start_with
   end_with
                reverse
Array.each
[1,2,3].each {|i| print i+5 }   #=> 6 7 8

[1,2,3].each(function(i){ print( i+5) }) > 6 7 8
[1,2,3].reverse_each(function(i){ print( i+5) }) >
8 7 6
[{a:1,b:2},{a:2,b:3},{a:3,b:4}].each(function(item){
    print(item.a+item.b)
}) > 3 5 7
Array.map
a = [ "a", "b", "c", "d" ]
a.map {|x|x+"!" }       #=> ["a!", "b!", "c!", "d!"]
a                       #=> ["a", "b", "c", "d"]

var a = [ "a", "b", "c", "d" ];
a.map(function(i,item){return x+”!”}) > ["a!",
"b!", "c!", "d!"]
a                                           > [ "a",
"b", "c", "d" ]
Array.remove_if
          (Array.reject)
[ "a", "b", "c" ].reject {|x| x>="b" }   #=> ["a"]




[ "a", "b", "c" ].reject( function(i,x) {return x >=
"b" })
a = [ 4, 5, 6 ]
                 Array.zip
b = [ 7, 8, 9 ]
[1,2,3].zip(a, b)     #=> [[1, 4, 7], [2, 5, 8], [3,
6, 9]]
[1,2].zip(a,b)        #=> [[1, 4, 7], [2, 5, 8]]
a.zip([1,2],[8])      #=> [[4, 1, 8], [5, 2, nil],
var a = [ 4, 5, 6 ];
[6, nil, nil]]
var b = [ 7, 8, 9 ];
[1,2,3].zip(a, b)    > [[1, 4, 7], [2, 5, 8], [3, 6,
9]]
[1,2].zip(a,b)       > [[1, 4, 7], [2, 5, 8]]
a.zip([1,2],[8])      > [[4, 1, 8], [5, 2, null], [6,
null, null]]
Array.transpose
a = [[1,2], [3,4], [5,6]]
a.transpose                    #=> [[1, 3, 5], [2, 4,
6]]




var a = [[1,2], [3,4], [5,6]];
a.transpose()                   > [[1, 3, 5], [2, 4,
6]]
Array.rotate
a = [ "a", "b", "c", "d" ]
a.rotate             #=> ["b", "c", "d", "a"]
a                    #=> ["a", "b", "c", "d"]
a.rotate(2)          #=> ["c", "d", "a", "b"]
a.rotate(-3)         #=> ["b", "c", "d", "a"]

var a = [ "a", "b", "c", "d" ];
a.rotate()             > ["b", "c", "d", "a"]
a                      > ["a", "b", "c", "d"]
a.rotate(2)           > ["c", "d", "a", "b"]
a.rotate(-3)          > ["b", "c", "d", "a"]
Array.flatten
s = [ 1, 2, 3 ]         #=> [1, 2, 3]
t = [ 4, 5, 6, [7, 8] ] #=> [4, 5, 6, [7, 8]]
a = [ s, t, 9, 10 ]     #=> [[1, 2, 3], [4, 5, 6, [7,
8]], 9, 10]
a.flatten                #=> [1, 2, 3, 4, 5, 6, 7, 8,
9, 10]

a = [ 1, 2, [3, [4, 5] ] ]
a.flatten(1)              #=> [1, 2, 3, [4, 5]]
Array.sample

[1,2,3,4,5,6,7,8,9,10].sample()    #=> 7 (just
randomly selected)


[1,2,3,4,5,6,7,8,9,10].sample(3)   #=> 3, 9, 2
Array.shuffle


a = [ 1, 2, 3 ]         #=> [1, 2, 3]
a.shuffle               #=> [2, 3, 1]

var a = [ 1, 2, 3 ];      > [1, 2, 3]
a.shuffle()                > [2, 3, 1]
Array Object
                 is_empty
         push_all          size
      reverse_eachintersect clear
  each                     deduct
       map uniq        union
sample     at shuffle values_attranspose
   contains                        last
                      transpose
 keep_if     compact      select
       remove                    insert
  remove_if        reject      zip
       index      rotate      equals
                        take
   remove_at fetchtake_while
         flatten count
Examples

(1..10).map{|i| ("a".."z").to_a[rand 26] }.join             

new Array(10).map(function(i,item){

    return
"abcdefghijklmnopqrstuvwxyz"[(26*Math.random()).floor()]
;

}).join("");

(10).times(function(i){

    return
"abcdefghijklmnopqrstuvwxyz"[(26*Math.random()).floor()];

}).join("");
Examples

(1..10).map{|i| ("a".."z").to_a[rand 26] }.join             

new Array(10).map(function(i,item){

    return
"abcdefghijklmnopqrstuvwxyz"[(26*Math.random()).floor()]
;

}).join("");

(10).times(function(i){

    return
"abcdefghijklmnopqrstuvwxyz"[(26*Math.random()).floor()];

}).join("");
How I simply try
 these snippets
            nodejs




             irb
Thanks to
What if we can write
 and test like this
require '../src/com/ciphor/ruby/Array.js'
describe 'com.ciphor.ruby.Array', ->
    testArray = null
    beforeEach ->
      testArray = [1, 2, 3, 4, 5]
                                   Test for BDD -

                                Behaviour Driven
    afterEach ->
      testArray = null
                                   Developement

    it 'adds all elements in the given array into the self', ->
     testArray.push_all [6, 7, 8]
     expect(testArray.length).toEqual(8)
     expect(testArray).toContain(8)
+

...to be continued
Not


The End

More Related Content

Useful javascript

  • 1. Some Javascript useful perhaps
  • 2. 他山之石,可以攻玉 Stones from other hills may serve to polish the jade of this one. advice from others may help one overcome one's shortcomings.
  • 3. Ruby A Programmer’s Best Friend This time we use Ruby to polish our Jade.
  • 4. Integer.times (10).times(function 10.times do |i| (i){ print i*10, " " print( i*10 + “ ”); end });
  • 5. Number.step 1.step(10, 2) { |i| print i, " " } Math::E.step(Math::PI, 0.2) { |f| print f, " " } (1).step(function(i){ print(i); }, 10, 2); Math.E.step(function(f){ print(f); },
  • 6. Number Object modulo abs ceil floor round step
  • 7. String.capitalise "hello".capitalize #=> "Hello" "HELLO".capitalize#=> "Hello" "123ABC".capitalize#=> "123abc" "hello".capitalize() > "Hello" "HELLO".capitalize() > "Hello" "123ABC".capitalize() > "123abc"
  • 8. String.each_char "hello".each_char {|c| print c, ' '} #=> "h e l l o " “hello”.each_char (function(c) {return c+” ”}) > “h e l l o ”
  • 9. String.insert "abcd".insert(-3, 'X') #=> 'abXcd' "abcd".insert(-1, 'X') #=> 'abcdX' "abcd".insert(1, 'X') #=> 'aXbcd' "abcd".insert(-3, 'X') > 'abXcd' "abcd".insert(-1, 'X') > 'abcdX' "abcd".insert(1, 'X') > 'aXbcd'
  • 10. String.reverse "Hello".reverse #=> "olleh" "Hello".reverse() > "olleh"
  • 11. String Object casecmp insert each_char capitalise strip swapcase start_with end_with reverse
  • 12. Array.each [1,2,3].each {|i| print i+5 } #=> 6 7 8 [1,2,3].each(function(i){ print( i+5) }) > 6 7 8 [1,2,3].reverse_each(function(i){ print( i+5) }) > 8 7 6 [{a:1,b:2},{a:2,b:3},{a:3,b:4}].each(function(item){ print(item.a+item.b) }) > 3 5 7
  • 13. Array.map a = [ "a", "b", "c", "d" ] a.map {|x|x+"!" } #=> ["a!", "b!", "c!", "d!"] a #=> ["a", "b", "c", "d"] var a = [ "a", "b", "c", "d" ]; a.map(function(i,item){return x+”!”}) > ["a!", "b!", "c!", "d!"] a > [ "a", "b", "c", "d" ]
  • 14. Array.remove_if (Array.reject) [ "a", "b", "c" ].reject {|x| x>="b" } #=> ["a"] [ "a", "b", "c" ].reject( function(i,x) {return x >= "b" })
  • 15. a = [ 4, 5, 6 ] Array.zip b = [ 7, 8, 9 ] [1,2,3].zip(a, b) #=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]] [1,2].zip(a,b) #=> [[1, 4, 7], [2, 5, 8]] a.zip([1,2],[8]) #=> [[4, 1, 8], [5, 2, nil], var a = [ 4, 5, 6 ]; [6, nil, nil]] var b = [ 7, 8, 9 ]; [1,2,3].zip(a, b) > [[1, 4, 7], [2, 5, 8], [3, 6, 9]] [1,2].zip(a,b) > [[1, 4, 7], [2, 5, 8]] a.zip([1,2],[8]) > [[4, 1, 8], [5, 2, null], [6, null, null]]
  • 16. Array.transpose a = [[1,2], [3,4], [5,6]] a.transpose #=> [[1, 3, 5], [2, 4, 6]] var a = [[1,2], [3,4], [5,6]]; a.transpose() > [[1, 3, 5], [2, 4, 6]]
  • 17. Array.rotate a = [ "a", "b", "c", "d" ] a.rotate #=> ["b", "c", "d", "a"] a #=> ["a", "b", "c", "d"] a.rotate(2) #=> ["c", "d", "a", "b"] a.rotate(-3) #=> ["b", "c", "d", "a"] var a = [ "a", "b", "c", "d" ]; a.rotate() > ["b", "c", "d", "a"] a > ["a", "b", "c", "d"] a.rotate(2) > ["c", "d", "a", "b"] a.rotate(-3) > ["b", "c", "d", "a"]
  • 18. Array.flatten s = [ 1, 2, 3 ] #=> [1, 2, 3] t = [ 4, 5, 6, [7, 8] ] #=> [4, 5, 6, [7, 8]] a = [ s, t, 9, 10 ] #=> [[1, 2, 3], [4, 5, 6, [7, 8]], 9, 10] a.flatten #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] a = [ 1, 2, [3, [4, 5] ] ] a.flatten(1) #=> [1, 2, 3, [4, 5]]
  • 19. Array.sample [1,2,3,4,5,6,7,8,9,10].sample() #=> 7 (just randomly selected) [1,2,3,4,5,6,7,8,9,10].sample(3) #=> 3, 9, 2
  • 20. Array.shuffle a = [ 1, 2, 3 ] #=> [1, 2, 3] a.shuffle #=> [2, 3, 1] var a = [ 1, 2, 3 ]; > [1, 2, 3] a.shuffle() > [2, 3, 1]
  • 21. Array Object is_empty push_all size reverse_eachintersect clear each deduct map uniq union sample at shuffle values_attranspose contains last transpose keep_if compact select remove insert remove_if reject zip index rotate equals take remove_at fetchtake_while flatten count
  • 22. Examples (1..10).map{|i| ("a".."z").to_a[rand 26] }.join new Array(10).map(function(i,item){ return "abcdefghijklmnopqrstuvwxyz"[(26*Math.random()).floor()] ; }).join(""); (10).times(function(i){ return "abcdefghijklmnopqrstuvwxyz"[(26*Math.random()).floor()]; }).join("");
  • 23. Examples (1..10).map{|i| ("a".."z").to_a[rand 26] }.join new Array(10).map(function(i,item){ return "abcdefghijklmnopqrstuvwxyz"[(26*Math.random()).floor()] ; }).join(""); (10).times(function(i){ return "abcdefghijklmnopqrstuvwxyz"[(26*Math.random()).floor()]; }).join("");
  • 24. How I simply try these snippets nodejs irb
  • 26. What if we can write and test like this require '../src/com/ciphor/ruby/Array.js' describe 'com.ciphor.ruby.Array', -> testArray = null beforeEach -> testArray = [1, 2, 3, 4, 5] Test for BDD - Behaviour Driven afterEach -> testArray = null Developement it 'adds all elements in the given array into the self', -> testArray.push_all [6, 7, 8] expect(testArray.length).toEqual(8) expect(testArray).toContain(8)