SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Ruby初級者向けレッスン 48回 ─── Array と Hash
Ruby初級者向けレッスン 48回 ─── Array と HashRuby初級者向けレッスン 48回 ─── Array と Hash
Ruby初級者向けレッスン 48回 ─── Array と Hash
higaki
 
Gearmam, from the_worker's_perspective copy
Gearmam, from the_worker's_perspective copyGearmam, from the_worker's_perspective copy
Gearmam, from the_worker's_perspective copy
Brian Aker
 
Logic Equations Resolver J Script
Logic Equations Resolver   J ScriptLogic Equations Resolver   J Script
Logic Equations Resolver J Script
Roman Agaev
 

Mais procurados (20)

The secrets of inverse brogramming
The secrets of inverse brogrammingThe secrets of inverse brogramming
The secrets of inverse brogramming
 
Groovy
GroovyGroovy
Groovy
 
Clojure functions midje
Clojure functions midjeClojure functions midje
Clojure functions midje
 
Data Types and Processing in ES6
Data Types and Processing in ES6Data Types and Processing in ES6
Data Types and Processing in ES6
 
imager package in R and examples..
imager package in R and examples..imager package in R and examples..
imager package in R and examples..
 
Oh Composable World!
Oh Composable World!Oh Composable World!
Oh Composable World!
 
Ruby初級者向けレッスン 48回 ─── Array と Hash
Ruby初級者向けレッスン 48回 ─── Array と HashRuby初級者向けレッスン 48回 ─── Array と Hash
Ruby初級者向けレッスン 48回 ─── Array と Hash
 
Introduction to R
Introduction to RIntroduction to R
Introduction to R
 
python高级内存管理
python高级内存管理python高级内存管理
python高级内存管理
 
A tour of Python
A tour of PythonA tour of Python
A tour of Python
 
Rのスコープとフレームと環境と
Rのスコープとフレームと環境とRのスコープとフレームと環境と
Rのスコープとフレームと環境と
 
Ruby Language: Array, Hash and Iterators
Ruby Language: Array, Hash and IteratorsRuby Language: Array, Hash and Iterators
Ruby Language: Array, Hash and Iterators
 
Ruby's Arrays and Hashes with examples
Ruby's Arrays and Hashes with examplesRuby's Arrays and Hashes with examples
Ruby's Arrays and Hashes with examples
 
Gearmam, from the_worker's_perspective copy
Gearmam, from the_worker's_perspective copyGearmam, from the_worker's_perspective copy
Gearmam, from the_worker's_perspective copy
 
Cycle.js: Functional and Reactive
Cycle.js: Functional and ReactiveCycle.js: Functional and Reactive
Cycle.js: Functional and Reactive
 
Gearman, from the worker's perspective
Gearman, from the worker's perspectiveGearman, from the worker's perspective
Gearman, from the worker's perspective
 
Millionways
MillionwaysMillionways
Millionways
 
Elm: give it a try
Elm: give it a tryElm: give it a try
Elm: give it a try
 
Groovy puzzlers по русски с Joker 2014
Groovy puzzlers по русски с Joker 2014Groovy puzzlers по русски с Joker 2014
Groovy puzzlers по русски с Joker 2014
 
Logic Equations Resolver J Script
Logic Equations Resolver   J ScriptLogic Equations Resolver   J Script
Logic Equations Resolver J Script
 

Destaque (8)

Cansecwest_16_Dont_Trust_Your_Eye_Apple_Graphics_Is_Compromised
Cansecwest_16_Dont_Trust_Your_Eye_Apple_Graphics_Is_CompromisedCansecwest_16_Dont_Trust_Your_Eye_Apple_Graphics_Is_Compromised
Cansecwest_16_Dont_Trust_Your_Eye_Apple_Graphics_Is_Compromised
 
Moving Towards a Paperless Classroom
Moving Towards a Paperless ClassroomMoving Towards a Paperless Classroom
Moving Towards a Paperless Classroom
 
CatAnDogme - Creative Activities and dogme (by Jimmy Astley and Mauro Espindola)
CatAnDogme - Creative Activities and dogme (by Jimmy Astley and Mauro Espindola)CatAnDogme - Creative Activities and dogme (by Jimmy Astley and Mauro Espindola)
CatAnDogme - Creative Activities and dogme (by Jimmy Astley and Mauro Espindola)
 
Dogme elt demo
Dogme elt demoDogme elt demo
Dogme elt demo
 
Dogme with young learners and beginners
Dogme with young learners and beginnersDogme with young learners and beginners
Dogme with young learners and beginners
 
Dogme Workshop Materials
Dogme Workshop MaterialsDogme Workshop Materials
Dogme Workshop Materials
 
English world teacher training technology
English world teacher training technologyEnglish world teacher training technology
English world teacher training technology
 
Dogme ELT - a Pedagogy for Virtual Worlds
Dogme ELT - a Pedagogy for Virtual WorldsDogme ELT - a Pedagogy for Virtual Worlds
Dogme ELT - a Pedagogy for Virtual Worlds
 

Semelhante a Useful javascript

Let’s Talk About Ruby
Let’s Talk About RubyLet’s Talk About Ruby
Let’s Talk About Ruby
Ian Bishop
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
 
関数潮流(Function Tendency)
関数潮流(Function Tendency)関数潮流(Function Tendency)
関数潮流(Function Tendency)
riue
 
Ruby Language - A quick tour
Ruby Language - A quick tourRuby Language - A quick tour
Ruby Language - A quick tour
aztack
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Python
pugpe
 
An introduction to property-based testing
An introduction to property-based testingAn introduction to property-based testing
An introduction to property-based testing
Vincent Pradeilles
 

Semelhante a Useful javascript (20)

Intoduction to php arrays
Intoduction to php arraysIntoduction to php arrays
Intoduction to php arrays
 
Let’s Talk About Ruby
Let’s Talk About RubyLet’s Talk About Ruby
Let’s Talk About Ruby
 
Haskellで学ぶ関数型言語
Haskellで学ぶ関数型言語Haskellで学ぶ関数型言語
Haskellで学ぶ関数型言語
 
R programming language
R programming languageR programming language
R programming language
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
関数潮流(Function Tendency)
関数潮流(Function Tendency)関数潮流(Function Tendency)
関数潮流(Function Tendency)
 
Super Advanced Python –act1
Super Advanced Python –act1Super Advanced Python –act1
Super Advanced Python –act1
 
[1062BPY12001] Data analysis with R / week 2
[1062BPY12001] Data analysis with R / week 2[1062BPY12001] Data analysis with R / week 2
[1062BPY12001] Data analysis with R / week 2
 
Spark_Documentation_Template1
Spark_Documentation_Template1Spark_Documentation_Template1
Spark_Documentation_Template1
 
Extending Operators in Perl with Operator::Util
Extending Operators in Perl with Operator::UtilExtending Operators in Perl with Operator::Util
Extending Operators in Perl with Operator::Util
 
Intoduction to numpy
Intoduction to numpyIntoduction to numpy
Intoduction to numpy
 
An overview of Python 2.7
An overview of Python 2.7An overview of Python 2.7
An overview of Python 2.7
 
Ruby Language - A quick tour
Ruby Language - A quick tourRuby Language - A quick tour
Ruby Language - A quick tour
 
Python lecture 05
Python lecture 05Python lecture 05
Python lecture 05
 
Optimization and Mathematical Programming in R and ROI - R Optimization Infra...
Optimization and Mathematical Programming in R and ROI - R Optimization Infra...Optimization and Mathematical Programming in R and ROI - R Optimization Infra...
Optimization and Mathematical Programming in R and ROI - R Optimization Infra...
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Python
 
PHP and MySQL Tips and tricks, DC 2007
PHP and MySQL Tips and tricks, DC 2007PHP and MySQL Tips and tricks, DC 2007
PHP and MySQL Tips and tricks, DC 2007
 
An introduction to property-based testing
An introduction to property-based testingAn introduction to property-based testing
An introduction to property-based testing
 
Table of Useful R commands.
Table of Useful R commands.Table of Useful R commands.
Table of Useful R commands.
 
Numpy tutorial(final) 20160303
Numpy tutorial(final) 20160303Numpy tutorial(final) 20160303
Numpy tutorial(final) 20160303
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

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)