Contenu connexe Similaire à Useful javascript (20) Useful javascript2. 他山之石,可以攻玉
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); },
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'
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("");
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)