美文网首页
Freecodecamp中级算法

Freecodecamp中级算法

作者: Nicoyupei | 来源:发表于2017-08-06 15:16 被阅读0次

    求小于等于给定数值的质数之和。

    只有 1 和它本身两个约数的数叫质数。例如,2 是质数,因为它只能被 1 和 2 整除。1 不是质数,因为它只能被自身整除。

    给定的数不一定是质数。


    其实我们完全可以不用将质数全部取出来,可以将 2 到给定值之间的所有整数加起来,然后在这期间判断一下,如果 “ 不是质数 ” ,就将这个数减掉即可,代码如下:

    代码

    找出能被两个给定参数和它们之间的连续数字整除的最小公倍数。

    范围是两个数字构成的数组,两个数字不一定按数字顺序排序。

    例如对 1 和 3 —— 找出能被 1 和 3 和它们之间所有数字整除的最小公倍数


    根据题目,先把两个给定参数之间的连续数字取出来放在一个临时数组 _arr 中,然后利用 reduce() 方法依次求最小公倍数,而两个数的最小公倍数 = 两数乘积 / 两数的最大公约数,所以这里专门写了一个函数,利用辗转相除法求最大公约数,代码如下:

    代码

    写一个function,它遍历数组arr,并返回数组中第一个满足func返回值的元素。举个例子,如果arr为[1, 2, 3],func为function(num) {return num === 2; },那么find的返回值应为2。


    自己写的

    function find(arr,func)

    {

    arr=arr.filter(func);

    returnarr[0];

    }


    让我们来丢弃数组(arr)的元素,从左边开始,直到回调函数return true就停止。

    第二个参数,func,是一个函数。用来测试数组的第一个元素,如果返回fasle,就从数组中抛出该元素(注意:此时数组已被改变),继续测试数组的第一个元素,如果返回fasle,继续抛出,直到返回true。

    最后返回数组的剩余部分,如果没有剩余,就返回一个空数组。


    题目的意思是,将数组参数放入函数中检测,并将第一个满足条件的元素之前的所有元素删除,所以我们先用 filter() 方法取得满足条件的元素数组的第一个 firstTrue ,然后用 firstTrue 与原数组的第一个元素比较,不相等便删除,直到 firstTrue 变为数组的第一个元素,代码如下:


    function drop(arr, func) {

    // Drop them elements.

    var firstTrue = arr.filter(func)[0];

    while(firstTrue !== arr[0]) {

    arr.shift();

    }

    return arr;

    }


    对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套。


    代码

    传入二进制字符串,翻译成英语句子并返回。

    二进制字符串是以空格分隔的。


    parseInt(string,radix) 函数可解析一个字符串,并返回一个整数。

    fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。

    参数解释 代码

    所有的东西都是真的!

    完善编辑器中的every函数,如果集合(collection)中的所有对象都存在对应的属性(pre),并且属性(pre)对应的值为真。函数返回ture。反之,返回false。

    记住:你只能通过中括号来访问对象的变量属性(pre)。

    提示:你可以有多种实现方式,最简洁的方式莫过于Array.prototype.every()


    创建一个计算两个参数之和的 function。如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果。

    例如,add(2, 3)应该返回5,而add(2)应该返回一个 function。

    调用这个有一个参数的返回的 function,返回求和的结果:

    var sumTwoAnd = add(2);

    sumTwoAnd(3)返回5。

    如果两个参数都不是有效的数字,则返回 undefined。


    传入的参数有几很多种可能,但具体可以分为三种情况:两个数字,只有一个数字,参数中有非数字。第三种情况直接返回 Undefined ,第一种直接返回两数之和,第二种返回一个函数,将当前数字加上传入的参数即可(当然,如果参数是非数字则返回 Undefined),代码如下:


    相关文章

      网友评论

          本文标题:Freecodecamp中级算法

          本文链接:https://www.haomeiwen.com/subject/turrlxtx.html