freecodecamp练习记录

链接 链接

红皮书镇楼
在这里插入图片描述

sum-all-numbers-in-a-range

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

sumAll([1, 4]);

Diff Two Arrays

function diffArray(arr1, arr2) {
  var newArr = [];

  arr1.forEach(e => {
    if (!arr2.includes(e)) {
      newArr.push(e)
    }
  })
  arr2.forEach(e => {
    if (!arr1.includes(e)) {
      newArr.push(e)
    }
  })
  return newArr;
}

Seek and Destroy

function destroyer(arr) {
  var len = arguments.length;
  var newarr = []
  for (var i = 1; i < len; i++) {
    newarr.push(arguments[i])
  }
  newarr.forEach(e => {
    arr = arr.filter(s => {
      return e != s
    })
  })
  return arr;
}

Wherefore art thou

function whatIsInAName(collection, source) {
  var arr = [];
  // Only change code below this line
  var keys = Object.keys(source);
  collection.forEach(e => {
    var flag = keys.every(el => {
      return source[el] == e[el]
    })
    if (flag) {
      arr.push(e)
    }
  })
  // Only change code above this line
  return arr;
}

Spinal Tap Case

function spinalCase(str) {
str = str.replace(/_/g," ")
        .replace(/([A-Z])/g," $1")
        .replace(/^\s/,"")
        .replace(/\s+/g,"-")
        .toLowerCase();
  return str;
}

Pig Latin

function translatePigLatin(str) {
  var strat = "";
  var yy = ["a", "e", "i", "o", "u"];
  if (yy.includes(str.charAt(0))) {
    str += "way";
  } else {
    var len = str.length;
    for (var i = 0; i < len; i++) {
      if (!yy.includes(str.charAt(i))) {
        var splitarr = str.split("");
        strat += splitarr[i];
        continue;
      } else {
        break;
      }
    }
    str = str.replace(strat, "");
    str += strat + "ay";
  }
  return str;
}

Search and Replace


   function myReplace(str, before, after) {
      if (str.indexOf(before) != -1) {
        var s;
        if (/^[A-Z]+$/.test(before.charAt(0))) {
          s = after.slice(0, 1).toUpperCase() + after.slice(1, after.length);
        } else {
          s = after.slice(0, 1).toLowerCase() + after.slice(1, after.length);
        }
        str = str.replace(before, s);
      } else {
        str = "This has a spelling error";
      }
      return str;
    }   

DNA Pairing

function pairElement(str) {
  var arr1 = str.split("");
      var at = ["A", "T"];
      var cg = ["C", "G"];
      str = arr1.map(e => {
        if (at.indexOf(e) == 0) {
          return ["A", "T"];
        } else if (at.indexOf(e) == 1) {
          return ["T", "A"];
        } else if (cg.indexOf(e) == 0) {
          return ["C", "G"];
        } else if (cg.indexOf(e) == 1) {
          return ["G", "C"];
        } else {
          return [];
        }
      });

      return str;
}

Missing letters

 function fearNotLetter(str) {
      var zm = "abcdefghijklmnopqrstuvwxyz".split("");
      var lastindex = zm.indexOf(str.slice(-1));
      var fristindex = zm.indexOf(str.slice(0, 1));
      var newzm = zm.slice(fristindex, lastindex + 1);
      if (newzm.length == str.length) {
        str = undefined;
      } else {
        var res = "";
        newzm.forEach(e => {
          if (!str.split("").some(a => a == e)) {
            res += e;
          }
        });
        str = res;
      }
      return str;
    }

Sorted Union

function uniteUnique(arr) {
  var len = arguments.length;
  var arr3 = [];
  for (var i = 1; i < len; i++) {
    arr3.push(arguments[i]);
  }
  var arr2 = arr3.flat().map(e => {
    if (!arr.includes(e)) {
      arr.push(e);
    }
  });
  return arr;
}

uniteUnique([1, 3, 2], [5, 2, 1, 4], [2, 1]);

Convert HTML Entities

  function convertHTML(str) {
      return str.replace(/[<>&"]/g, function(c) {
        return {
          "'": "&apos;",
          "<": "&lt;",
          ">": "&gt;",
          "&": "&amp;",
          '"': "&quot;"
        }[c];
      });
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值