useful javascript

28
Some Javascript useful perhaps

Upload: lei-kang

Post on 18-Jul-2015

128 views

Category:

Technology


0 download

TRANSCRIPT

Some Javascriptuseful perhaps

Stones from other hills may serve to polish the jade of this one.

advice from others may help one overcome one's shortcomings.

他山之石,可以攻玉

This time we use Ruby to polish our Jade.

RubyA Programmer’s Best Friend

10.times do |i|

print i*10, " "

end

Integer.times

(10).times(function(i){

print( i*10 + “ ”);

});

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

floor

moduloceil

stepround

abs

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

capitalise

casecmpeach_char

end_withstart_with

strip swapcase

insert

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.mapa = [ "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" })

Array.zipa = [ 4, 5, 6 ] 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], [6, nil, nil]]var a = [ 4, 5, 6 ]; 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.transposea = [[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.rotatea = [ "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.flattens = [ 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

unioneach

map

remove

remove_at

contains

count

deduct

transpose

intersectpush_all

reverse_each

compact

uniqat values_at

clear

zipremove_if

is_empty

select

transpose

reject

take_whilerotate equalstake

insert

last

fetchindex

flatten

keep_if

sample shuffle

size

Examples

(10).times(function(i){

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

}).join("");

(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("");

Examples

(10).times(function(i){

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

}).join("");

(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("");

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] afterEach -> testArray = null 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)

Test for BDD - Behaviour Driven Developement

+

...to be continued

Not

The End