An analogy between the Ruby, Javascript, and Python languages
Table Of Contents
- Basics Intro
- Arrays Functions
- Compound Arrays
- String Functions
- Numerical Functions
- Logical Conditions
- Class and Methods or Functions
- Regular expression (Regex)
- Type Conversion
- Heredocs
Basics Intro
| Description | Ruby | Javascript | Python |
|---|---|---|---|
| Start Cli | irb | python | node |
| Integers & floats declaration | x = 1 ; y = 0.23 | let x = 1; var y = 0.23 | x = 1 ; y = 0.23 |
| Contants Declaration | W = 'ruby'.freeze | const w = 'js' | W = 'ruby' |
| Variables in strings | "one is #{x}" | one is ${w}\ |
"one is {}".format(x) |
| Line Comment | # this is comment | // this is comment | # this is comment |
| Block comments | =being ; =end | /* block comment */ | ''' block comment ''' |
| write output | puts 'write output' | console.log('write output')document.write("write HTML") | print('write output') |
| Arrays , Lists | arr = [1,'a',true] ; arr = Array.new | let arr = [1,'a',true] | arr = [1,'a',True] |
| Hashes, Objects, dictionaries | hash = { 'a' => 2, :b => 4 } | var obj = { 1 : 2 , 'a' : 4} | dict = {1: 2, 'd': 'e' } |
| Destructuring | a,b,c = [2,3,4] ; p b | var {x : a , y: b} = {x : 1, y : 2} ; console.log(b) | a,b,c = [2,3,4] |
Arrays Functions
where x is [3,4,5,6,7,8]
| Description | Ruby | Javascript | Python |
|---|---|---|---|
| Remove last element | x.pop x.pop(2) |
x.pop() | x.pop() |
| Remove first element | x.shift(9) | x.shift() | x.remove(x[0]) del x[0] |
| Add last element | x.push(9) x.append(9) x << 9 |
x.push(9) y.concat(5) |
x.append(9); x.extend([9]); x.insert(len(x), 9) |
| Add first element | x.unshift(2) | x.unshift(2) | x.insert(0,2) |
| Sort | x.sort | x.sort() | x.sort() |
| Reverse | x.reverse | x.reverse() | x.reverse() |
| Count | x.count(6) | var count = {}; y.forEach(val => count[val] = (count[val] \ |
\ |
| Length | x.length; x.size; x.count | y.length | len(y) |
| Maximum | x.max | Math.max(...x) | max(x) |
| Minimum | x.min | Math.min(...x) | min(x) |
| index | x.index(3) | x.indexOf(3) | x.index(3) |
| insert | x.insert(2, 'Feb') | x.splice(1, 0, 'Feb') | x.insert(2, 'Feb') |
| Make a copy | y = x.dup | let y = [...x] | y = x[:] |
| Select, filter | x.select{\ | el\ | el > 4 } |
| Reduce | x.reduce(:+) | lx.reduce((result,el)=> result + el,0) | reduce(lambda result,y: result + y, x) |
| Map | x.map{\ | el\ | el*2} |
| Each | z = [] x.each{\ | el\ | z << el*2} p z |
| Reverse loop | z = [] x.reverse_each{\ | el\ | z << el*2} p z |
| Clear , Reset | x.clear | x = [] | del x[:] |
Compound arrays
where, x is [1,2,3] & y is [2,4,5,6]
| Description | Ruby | Javascript | Python |
|---|---|---|---|
| Intersection | x & y #=> [2] | x.filter(e => y.includes(e)) | list(set(x) & set(y)) |
| Union | x \ | yx.union(y) | var z = [...x,...y][...new Set( z )] 'or'Array.from(new Set(z)) |
| Join | x + y | [...x,...y] | x + y |
| Difference | x - y | x.filter(e => !y.includes(e)); | list(set(x) - set(y)) |
Strings Functions
where, s = 'Cheat sheet '
| Description | Ruby | Javascript | Python |
|---|---|---|---|
| UpperCase | s.upcase | s.toUpperCase() | s.upper() |
| LowerCase | s.downcase | s.toLowerCase() | s.upper() |
| SwapCase | s.swapcase | NA | s.swapcase() |
| Trim | s.strip! | s.trim() | s.strip() |
| StartsWith | s.start_with?('cheat') | s.startsWith('Cheat') | s.startswith('Cheat') |
| Repeat | 'Hi ' * 3 | 'Hi '.repeat(3) | 'Hi ' * 3 |
| Split | 'asdf'.split('') | 'asdf'.split('') | list('asdf') 'a#s#d'.split('#') |
| Join | ['a','s','d','f'].join() | ["a", "s", "d", "f"].join('') | ''.join(['a','s','d']) |
| Replace | s.replace('Hey') | ||
| Find | |||
| Count |
Numerical Functions
where, el = -22.45
| Description | Ruby | Javascript | Python |
|---|---|---|---|
| Ceil | el.ceil | Math.ceil(el) | import math math.ceil(el) |
| Floor | el.floor | Math.floor(el) | math.floor(el) |
| Round | el.round(1) | Math.round(el) | round(el) |
| Absolute | el.abs | Math.abs(el) | abs(el) |
| Random | rand(10) | Math.ceil(Math.random(10) * 11) | import random random.randrange(1,10) |
| Zero | el.zero? | ||
| Negative | el.negative? |
Logical Conditions
| Description | Ruby | Javascript | Python |
|---|---|---|---|
| If | if elsif else end | if : elif : else: | if () {} else if () {} else {} |
| case | case a when else end | switch(expression) {case x:break;case y: break; default:} | NA |
| Ternary Operator | true == false ? 1 : 2 | true == false ? 1 : 2 | 1 if (True == False) else 2 |
Class and Methods or Functions
| Description | Ruby | Javascript | Python |
|---|---|---|---|
| Instance Methods | def name(input) p inputend | name = function(input) {return ${input};} name = (input) => "input" |
def name(input): print("This is " + input) |
| Static Methods | def self.age(input) p inputend | static age(input) {return ${input};} |
@classmethod def age(input): print("This is " + input) |
| Class | class Personattr_accessor :name def initialize(name)@name = nameendend | class Person {constructor(name) {this.name = name;}} | class Person:def init(self, name):self.name = name |
| create instance Object | p = Person.new('Bezos') | let p = new Person("Bezos")let p1 = Object.create(Person) | p = Person("Bezos") |
| Single Inheritance | class Employee < Persondef initialize(name)super name@name = nameendend | class Employee extends Person {constructor(name) { super(name)this.name = name;}} | class Employee(Person):def init(self, name):self.name = name |
| Multiple Inheritance | module Studentdef walkendend class Personinclude Humanend | class Student extends Person | class Student(Person): |
| default values | def name(input='bezos') end | function(input='bezos') | def name(input='bezos') |
Regular expression (Regex)
where, lx = "titan titan titan"
| Description | Ruby | Javascript | Python |
|---|---|---|---|
| First occurrence | lx.match(/t[a-z]*n/)[0] | (/t[a-z]*n/).test(lx) //=> true | import rere.search("t[a-z]*n", lx).group() |
| All occurrences | lx.scan(/t[a-z]*n/) | lx.match(/t[a-z]*n/gi) | re.findall("t[a-z]*n",lx) |
Type Conversion
| Description | Ruby | Javascript | Python |
|---|---|---|---|
| string to Integer where, str2int = \'99\' | str2int.to_i | int(str2int) | parseInt(str2int) Number(str2int) |
| Integer to string where, int2str = 66 | int2str.to_s | str(int2str) | int2str.toString() |
Heredocs
| Description | Ruby | Javascript | Python |
|---|---|---|---|
| Multiline string | content = <<~HEREDOCI welcome your contributions.please suggesta topic or report an issueHEREDOCp content | content = """ I welcome your contributions.please suggesta topic or report an issue"""print(content) |
Top comments (0)