ScriptOJ
Tong XU
欣赏简洁的代码是一种赏心悦目的事情。
展开
-
#22 获取子元素属性
完成getChildAttributes函数,它接受一个 DOM 元素作为参数和一个属性名作为参数,你需要返回这个 DOM 的直接子元素的特定属性列表。例如:<ul id='list'> <li data-name="Jerry" class="item"><span>1</span></li> <li dat...原创 2020-03-19 17:08:33 · 624 阅读 · 0 评论 -
#83 filter map
Map.prototype.filterKeys = function(fn) { return new Map([...this].filter(([k, v]) => { return fn(k); }));}Map.prototype.filterValues = function(fn) { return new Map([...this].filter...原创 2020-01-19 20:46:32 · 155 阅读 · 0 评论 -
#94 按下标插入
现在有一个数组存放字符串数据:['item1', 'item2', 'item3', 'item4', 'item5']有另外一个数组存放一组对象:[ { content: 'section1', index: 0 }, { content: 'section2', index: 2 }]它每个对象表示的是会往原来的数组的index坐标插入content数...原创 2020-01-19 15:10:08 · 98 阅读 · 0 评论 -
#90 判断两个 Set 是否相同
完成isSameSet函数,它接受了两个 Set 对象作为参数,请你返回true/false来表明这两个 set 的内容是否完全一致,例如:const a = {}const b = 1const c = 'ScriptOJ'const set1 = new Set([a, b, c])const set2 = new Set([a, c, b])isSameSet(s...原创 2020-01-19 14:47:55 · 3019 阅读 · 1 评论 -
#89 数组去重 (by 陈 陈小俊 )
编写一个函数unique(arr),返回一个去除数组内重复的元素的数组。例如:unique([0, 1, 2, 2, 3, 3, 4]) // => [0, 1, 2, 3, 4]unique([0, 1, '1', '1', 2]) // => [0, 1, '1', 2]const unique = (arr) => { return Array.fr...原创 2020-01-19 14:41:12 · 116 阅读 · 0 评论 -
#96 spacify
请你给字符串都添加上原型方法spacify,可以让一个字符串的每个字母都多出一个空格的间隔:"ScriptOJ".spacify() // => "S c r i p t O J"(本题来源:http://blog.sourcing.io/interview-questions)/* TODO */String.prototype.spacify = function(...原创 2020-01-19 14:37:17 · 230 阅读 · 0 评论 -
#97 类名操作
完成几个 DOM 元素类名操作的工具方法:addClass(dom, name):给 dom 元素添加类名 name removeClass(dom, name):把 dom 元素的类名 name 删除 hasClass(dom, name):判断 dom 元素是否有类名 nameconst addClass = (dom, name) => { dom.classLis...原创 2020-01-19 14:32:36 · 114 阅读 · 0 评论 -
#98 判断两个矩形是否重叠
用一个对象的数据来表示一个矩形的位置和大小:{ x: 100, y: 100, width: 150, height: 250}它表示一个宽为 150 高为 250 的矩形在页面上的 (100, 100) 的位置。请你完成一个函数isOverlap可以接受两个矩形作为参数,判断这两个矩形在页面上是否重叠。例如:const rect1 = { x: 100...原创 2020-01-19 14:28:40 · 377 阅读 · 0 评论 -
#99 safeGet
有时候我们需要访问一个对象较深的层次,但是如果这个对象某个属性不存在的话就会报错,例如:var data = { a: { b: { c: 'ScriptOJ' } } }data.a.b.c // => scriptojdata.a.b.c.d // => 报错,代码停止执行console.log('ScriptOJ') // => 不会被执行请你完成一个s...原创 2020-01-19 13:57:41 · 239 阅读 · 0 评论 -
#101 解析字串
完成一个extractStr函数,可以把一个字符串中所有的:到.的子串解析出来并且存放到一个数组当中,例如:extractStr('My name is:Jerry. My age is:12.') // => ['Jerry', '12']注意,:和.之间不包含:和.。也即是说,如果::abc..,则返回['abc']。(本题来源:《JavaSc...原创 2020-01-19 13:36:03 · 180 阅读 · 0 评论 -
#102 记忆化斐波那契函数(Memoization)
斐波那契数列指的是类似于以下的数列:1, 1, 2, 3, 5, 8, 13, ....也就是,第 n 个数由数列的前两个相加而来:f(n) = f(n - 1) + f(n -2)请你完成fibonacci函数,接受n作为参数,可以获取数列中第n个数,例如:fibonacci(1) // => 1fibonacci(2) // => 1fibon...原创 2020-01-19 12:52:53 · 403 阅读 · 0 评论