useful javascript
TRANSCRIPT
Stones from other hills may serve to polish the jade of this one.
advice from others may help one overcome one's shortcomings.
他山之石,可以攻玉
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); },
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'
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("");
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