04 2017 档案
摘要:对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套。 这是一些对你有帮助的资源: Array.isArray() 刚开始不知道迭代,所以傻呵呵的写了一堆代码 function steamroller(arr) { var result=[]; for(var i=0;i<arr.length;i
阅读全文
摘要:让我们来丢弃数组(arr)的元素,从左边开始,直到回调函数return true就停止。 第二个参数,func,是一个函数。用来测试数组的第一个元素,如果返回fasle,就从数组中抛出该元素(注意:此时数组已被改变),继续测试数组的第一个元素,如果返回fasle,继续抛出,直到返回true。 最后返
阅读全文
摘要:写一个 function,它浏览数组(第一个参数)并返回数组中第一个通过某种方法(第二个参数)验证的元素。 这是一些对你有帮助的资源: Array.filter() 终于看到一道简单的啦,这道思路很简单,就是用filter返回第一个通过某种方法(第二个参数)验证的元素。 function find(
阅读全文
摘要:求小于等于给定数值的质数之和。 只有 1 和它本身两个约数的数叫质数。例如,2 是质数,因为它只能被 1 和 2 整除。1 不是质数,因为它只能被自身整除。 给定的数不一定是质数。 直接show code:
阅读全文
摘要:给一个正整数num,返回小于或等于num的斐波纳契奇数之和。 斐波纳契数列中的前几个数字是 1、1、2、3、5 和 8,随后的每一个数字都是前两个数字之和。 例如,sumFibs(4)应该返回 5,因为斐波纳契数列中所有小于4的奇数是 1、1、3。 首先是找出所有小于num的斐波那契数列,然后计算数
阅读全文
摘要:将字符串转换为 spinal case。Spinal case 是 all-lowercase-words-joined-by-dashes 这种形式的,也就是以连字符连接所有小写单词。 这是一些对你有帮助的资源: RegExp String.replace() 之前卡在这道题上了,现在搜到一个答案
阅读全文
摘要:将字符串中的字符 &、<、>、" (双引号), 以及 ' (单引号)转换为它们对应的 HTML 实体。 这是一些对你有帮助的资源: RegExp HTML Entities 用正则替换 function convert(str) { return str.replace(/&/g,'&').
阅读全文
摘要:写一个 function,传入两个或两个以上的数组,返回一个以给定的原始数组排序的不包含重复值的新数组。 换句话说,所有数组中的所有值都应该以原始顺序被包含在内,但是在最终的数组中不包含重复值。 非重复的数字应该以它们原始的顺序排序,但最终的数组不应该以数字顺序排序。 这是一些对你有帮助的资源: A
阅读全文
摘要:检查一个值是否是基本布尔类型,并返回 true 或 false。 基本布尔类型即 true 和 false 这是一些对你有帮助的资源: Boolean Objects 这个就是简单的判断了,直接放代码 function boo(bool) { return bool true||bool false
阅读全文
摘要:从传递进来的字母序列中找到缺失的字母并返回它。 如果所有字母都在序列中,返回 undefined。 这是一些对你有帮助的资源: String.charCodeAt() String.fromCharCode() 先拿以前的解法拿来直接用了 这是一些对你有帮助的资源: String.charCodeA
阅读全文
摘要:DNA 链缺少配对的碱基。依据每一个碱基,为其找到配对的碱基,然后将结果作为第二个数组返回。 Base pairs(碱基对) 是一对 AT 和 CG,为给定的字母匹配缺失的碱基。 在每一个数组中将给定的字母作为第一个碱基返回。 例如,对于输入的 GCG,相应地返回 [["G", "C"], ["C"
阅读全文
摘要:Pig Latin 把一个英文单词的第一个辅音或辅音丛(consonant cluster)移到词尾,然后加上后缀 "ay"。 如果单词以元音开始,你只需要在词尾添加 "way" 就可以了。 这是一些对你有帮助的资源: Array.indexOf() Array.push() Array.join(
阅读全文
摘要:使用给定的参数对句子执行一次查找和替换,然后返回新句子。 第一个参数是将要对其执行查找和替换的句子。 第二个参数是将被替换掉的单词(替换前的单词)。 第三个参数用于替换第二个参数(替换后的单词)。 注意:替换时保持原单词的大小写。例如,如果你想用单词 "dog" 替换单词 "Book" ,你应该替换
阅读全文
摘要:写一个 function,它遍历一个对象数组(第一个参数)并返回一个包含相匹配的属性-值对(第二个参数)的所有对象的数组。如果返回的数组中包含 source 对象的属性-值对,那么此对象的每一个属性-值对都必须存在于 collection 的对象中。例如,如果第一个参数是 [{ first: "Ro
阅读全文
摘要:将给定的数字转换成罗马数字。 所有返回的 罗马数字 都应该是大写形式。 这是一些对你有帮助的资源: Roman Numerals Array.splice() Array.indexOf() Array.join() function convertToRoman(num) { var nums =
阅读全文
摘要:比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。 这是一些对你有帮助的资源: Comparison Operators Array.slice() Array.filter() Array.indexOf() Array.concat()
阅读全文
摘要:我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。 最小的数字并非总在最前面。 这是一些对你有帮助的资源: Math.max() Math.min() Array.reduce() 感觉这些有用的资源对我来说没什么用。。不就是等差数列求和么,于是 这是一些对你有帮助的资源:
阅读全文
摘要:让上帝的归上帝,凯撒的归凯撒。 下面我们来介绍风靡全球的凯撒密码Caesar cipher,又叫移位密码。 移位密码也就是密码中的字母会按照指定的数量来做移位。 一个常见的案例就是ROT13密码,字母会移位13个位置。由'A' ↔ 'N', 'B' ↔ 'O',以此类推。 写一个ROT13函数,实现
阅读全文
摘要:先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。 举例:where([1,2,3,4], 1.5) 应该返回 1。因为1.5插入到数组[1,2,3,4]后变成[1,1.5,2,3,4],而1.5对应的索引值就是1。 同理,where([20,3,5], 19) 应该返回 2。因为
阅读全文
摘要:真假美猴王! 删除数组中的所有假值。 在JavaScript中,假值有false、null、0、""、undefined 和 NaN。 这是一些对你有帮助的资源: Boolean Objects Array.filter() filter() 方法使用指定的函数测试所有元素,并创建一个包含所有通过测
阅读全文
摘要:蛤蟆可以吃队友,也可以吃对手。 如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true。 举例,["hello", "Hello"]应该返回true,因为在忽略大小写的情况下,第二个字符串的所有字符都可以在第一个字符串找到。 ["hello", "hey"]应该返回false,因
阅读全文
摘要:打不死的小强! 返回一个数组被截断n个元素后还剩余的元素,截断从索引0开始。 这是一些对你有帮助的资源: Array.slice() Array.splice() 按照提供的第一种方法,代码如下: function slasher(arr, howMany) { return arr.slice(h
阅读全文