exit('IN');

本を読んで得た学びとか

【CodeWars】1/10 ~ 1/16に解いた問題たち

記事の内容

1/10 ~ 1/16にCodeWarsで解いた問題です。
JavaScriptを使用しています。
朝解いているので、すぐ解ける簡単な問題ばかりです。

1/10 N-th Power

問題の概要 配列のN番目の要素のN乗を返却する。

www.codewars.com

コード

function index(array, n){
  return array[n] ? Math.pow(array[n], n) : -1
}

1/11 Four/Seven

問題の概要 4なら7, 7なら4を返却する。
ただし、ifやswitchを使用せずに。

www.codewars.com

コード

function fourSeven(n){
  const obj = {
    4: 7,
    7: 4
  }
  return obj[n] || 0;
}

1/12 Find Multiples of a Number

問題の概要

limit以下の数字の配列を作る。 www.codewars.com

コード

function findMultiples(integer, limit) {
  let multiples_array = [integer];
  let sum = integer;
  
  while (sum + integer <= limit) {
    sum += integer;
    multiples_array.push(sum);
  }
  
  return multiples_array;
  
}

forで書いてもよかったかも。

1/13 Parse nice int from char problem

問題の概要 文字列の先頭にある数字をNumber型で返却する。

www.codewars.com

コード

function getAge(inputString){
  let ans = inputString.match(/^[\d]/);
  return Number(ans[0]);
}

2回目

function getAge(inputString){
  return parseInt(inputString);
}

1/14 Sum of Minimums!

問題の概要 各配列の最小の要素の合計を返却する。

www.codewars.com

コード

function sumOfMinimums(arrs) {
  let sum = 0;
  arrs.forEach ((arr) => {
    sum += Math.min(...arr);
  })
  
  return sum;
}

1/15 Lario and Muigi Pipe Problem

問題の概要 nからmまでの数字が入った配列の抜け落ちている要素を補完して返却する。

www.codewars.com

コード

function pipeFix(numbers){
  return range(numbers[0], numbers[numbers.length -1], 1);
}

const range = (start, stop, step) => Array.from({ length: (stop - start) / step + 1}, (_, i) => start + (i * step));

1/16 Write out expression!

問題の概要

www.codewars.com

計算式を文字の計算にする。

コード

function expressionOut(expr) {
  
  const formula = expr.split(' ');
  let result = OPERATORS[formula[1]] ? `${NUMBERS[formula[0]]} ${OPERATORS[formula[1]]}${NUMBERS[formula[2]]}` : "That's not an operator!";
  return result;
}
  
const NUMBERS = {
  '1': 'One',
  '2': 'Two',
  '3': 'Three',
  '4': 'Four',
  '5': 'Five',
  '6': 'Six',
  '7': 'Seven',
  '8': 'Eight',
  '9': 'Nine',
  '10': 'Ten'
};