记FreeCodeCamp中遇到的题目--js

来源:互联网 发布:床垫哪个品牌好 知乎 编辑:程序博客网 时间:2024/06/06 05:06
arguments转数组;

Array.prototype.slice.call(arguments);


计算一个整数的阶乘

function factorialize(num) {  if(num==0)return 1;  return num*factorialize(num-1);}


去掉数组中指定的数字

function destroyer(arr) {  var args = Array.from(arguments).slice(1);  return arr.filter(function(val) {    return !args.includes(val);  });}deestroyer([1,2,3,1,2,4,7,8,6],1,2,3);


从第一个参数中取出包含第二个参数的对象

function where(collection, source) { var keys=Object.keys(source);  return collection.filter(function(val){        return keys.every(function(key){          return val.hasOwnProperty(key)&&val[key]==source[key];        });  });}where([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" });


取两个数组中不同的部分

function diff(arr1, arr2) {  return arr1.filter(function(e){return !arr2.includes(e);}).concat(arr2.filter(function(e){return !arr1.includes(e);}));}diff([1, 2, 3, 5], [1, 2, 3, 4, 5]);