Skip to content

Instantly share code, notes, and snippets.

@ldealmei
Last active May 5, 2019 13:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save ldealmei/98f754d607471b320e8c66f5c47e432d to your computer and use it in GitHub Desktop.
Save ldealmei/98f754d607471b320e8c66f5c47e432d to your computer and use it in GitHub Desktop.
HYF - JS2

Function declaration & Function expression

Q1

console.log(square(5));
function square(n) {
return n*n;
}
  • Error
  • 25
  • 5
  • 0

Q2

console.log(square(5));
var square = function(n) {
return n*n;
}
  • 25
  • Error
  • 5
  • 0

Q3

var square = (n) => {
return n*n;
}
console.log(square(3));
  • 25
  • 9
  • Error
  • 5

Q4

let square = 3
console.log(square(5))
function square(n) {
return n
}
  • Error
  • 9
  • 0
  • 25

Q5

let square = 3
function square(n) {
return n
}
console.log(square(5))
  • Error
  • 5
  • 0
  • 25

Recursive functions

Q1 & Q2

  function recurse_1(param) {
    if (param) {
      return "done";
    } else {
      const not_param = !param
      return recurse_1(not_param);
    }
  }

// Q1: what does this return ? const ret_val = recurse_1(true);

// Q2: what does this return ? const ret_val = recurse_1(false);

Q3 & Q4

  function recurse_2(param) {
    if (param) {
      const not_param = !param
      return recurse_2(not_param);
    } else {
      return "done";
    }
  }

// Q1: what does this return ? const ret_val = recurse_2(true); // Q2: what does this return ? const ret_val = recurse_2(false);

array.map()

Q1

function divideByTwo(num) {
  return num/2
}
let array = [12, 4, 2]
let result = array.map(divideByTwo)
console.log(result)
  • 3
  • [12, 4, 2]
  • [6, 2, 1]

Q2

let books = ['Harry Potter', 'One Piece', 'Midnight Murder']
function getLength (str='') {
 return str.length
}
let result = books.map(getLength)
console.log(result)
  • ['', '', '']
  • [12, 9, 15]
  • 3
  • Error

Q3

let fibonacci = [0, 1, 1, 2, 3, 5, 8]
let result = fibonacci.map((val) => val*-1)
console.log(result)
  • [0, 1, 1, 2, 3, 5, 8]
  • [-1, 0, 0, 1, 2, 4, 7]
  • [0, -1, -1, -2, -3, -5, -8]

Q4

let result = [true, false, true, true].map(b => !b)
console.log(result)
  • Error
  • [false, true, false, false]
  • [true, false, true, true]
  • [true, true, true, true]

Q5

let result = ['papa', 'mama', 'cat', 'dog'].map(val => 1)
console.log(result)
  • Error
  • [1, 1, 1, 1]
  • ['papa', 'mama', 'cat', 'dog']

array.filter()

Q1

const fruits = ['apple', 'banana', 'grapes', 'mango', 'orange']
function getFruitILike(fruit) {
  return fruit.indexOf('n') === -1
}
let result = fruits.filter(getFruitILike)

Q2

const countries = ['EN', 'BE', 'NL', 'JA', 'GA', 'USA']
function keepLongCountryCode(code) {
  return code.length > 2
}
let result = countries.filter(keepLongCountryCode)
console.log(result)
  • ['EN', 'BE', 'NL', 'JA', 'GA', 'USA']
  • ['EN', 'BE', 'NL', 'JA', 'GA']
  • ['USA']
  • 'USA'

Q3

let lang = ['golang', 'python', 'C++', 'javascript', 'C', 'ruby']
let result = lang.filter(lang => lang[0] === 'C')
console.log(result.length)
  • ['C++', 'C']
  • 2
  • ['golang', 'python', 'javascript', 'ruby']
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment