判断一个字符串是否为驼峰字符串
判断一个字符串是否为驼峰字符串, judge('ByteDance','BD') -> true judge('Bytedance','BD') -> false function isCamelString(targetString, a…
JavaScript 平分数组算法
有一堆整数,请把他们分成三份,确保每一份和尽量相等(11, 42, 23, 4, 5, 6, 4, 5, 6, 11, 23, 42, 56, 78, 90) function splitToThree(arr) { cons…
手写用 ES6 proxy 实现 arr[-1] 的访问
// 手写用 ES6proxy 如何实现 arr[-1] 的访问 let arr = [1, 2, 3, 4] const proxyArr = new Proxy(arr, { get(target, key) { let index = +key if (…
请实现一个模块 math 支持链式调用
请实现一个模块 math,支持链式调用 math.add(2,4).minus(3).times(2) class MyMath { constructor(initValue = 0) { this.value = initValue } add(.…
实现一个字符串匹配算法 indexOf
String.prototype.myIndexOf = function (s, startIdx = 0) { s = '' + s for (let i = startIdx i < this.length i++) { if (this[i] === s[0]) { …
使用递归完成 1 到 100 的累加
function sum(n) { if (n <= 1) return n return sum(n - 1) + n } // test sum(100) sum(10) sum(2) sum(1)…
打印出 1~10000 以内的对称数
function findPalindromicNumber(n) { if (n < 1) return [] const res = [] for(let i = 1 i <=ni++) { if(isPalindromicNumber(i)) { res.push(…
实现 (5).add(3).minus(2) 功能
原型增加方法即可 Number.prototype.add = function (...args) { return args.reduce((acc, cur) => acc + cur, this) } Number.prototype.minus = …
自定义 hook useInterval
export function useInterval(callback: Parameters<typeof setInterval>[0], time=1000) { const saveCallback = useRef(callback) useEffect(()…
CSS 多行文字截断
使用 -webkit-box、-webkit-line-clamp: 3、-webkit-box-orient: vertical .ellipsis { width: 100px display: -webkit-box -webkit-line-clamp: 3 -w…
JavaScript 队列实现
class Quene<T> { items: T[] = [] enqeue(elem: T) { this.items.push(elem) } deqeue(): T | undefined { return this.items.shift() } front()…
用 JavaScript 创建一个单链表
class LinkNode<T> { val: T next: LinkNode<T> | null constructor(val: T) { this.val = val this.next = null } } class LinkNodeList<T…
filter 实现黑白主题切换
通过 filter 即可 html.dark-mode { filter: grayscale(100%) } html.light-mode { filter: none }…