FreeCodeCamp Intermediate Algorithm Scripting

FreeCodeCamp 中级算法

个人笔记,仅作留档

  • Sum All Numbers in a Range

我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。
最小的数字并非总在最前面。

function sumAll(arr) {
  var a = Math.max(arr[0],arr[1]);
  var b = Math.min(arr[0],arr[1]);
  var sum=0;    
  for(var i=b;i<=a;i++){
      sum+=i;
    }
    return sum;
}

sumAll([1, 4]);
  • Diff Two Arrays

比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。

function diff(arr1, arr2) {
  var r=[];
  arr1.forEach(o=>{
    if(arr2.indexOf(o)<0){
      r.push(o);
    }
  });
  arr2.forEach(o=>{
    if(arr1.indexOf(o)<0){
      r.push(o);
    }
  });
  
  return r;
}

diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);
  • Roman Numeral Converter

将给定的数字转换成罗马数字。
所有返回的 罗马数字 都应该是大写形式。

function convert(num) {
  var rTable = ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"];
  var nTable = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];
  var result = '';

  for (var i = 0; i < nTable.length; i++) {
      while (num >= nTable[i]) {
        num -= nTable[i];
        result += rTable[i];
      }
  }
  return result;
}

convert(36);
  • title

quote

code

你可能感兴趣的:(FreeCodeCamp Intermediate Algorithm Scripting)