js
niuyueyang
这个作者很懒,什么都没留下…
展开
-
js算法--前 K 个高频元素、寻找峰值和合并区间
前 K 个高频元素给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]方案function getMap(arr) { let obj = {}; for(let key in arr){ if(!obj[arr[key]]){ obj[arr[key]] = 1原创 2020-11-23 14:51:59 · 456 阅读 · 0 评论 -
js算法--寻找峰值
解释峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。示例输入: nums = [1,2,3,1] 1输出: 2 2解释: 3 是峰值元素,你的函数应该返回其索引 2。方法一使用数组的 reduce 方法遍历数组,设其初始值为 0。当遍历到的值大于上一次返回的下标所对应的原创 2020-11-19 11:30:35 · 725 阅读 · 0 评论 -
js算法--合并区间
给出一个区间的集合,请合并所有重叠的区间。输入: [[1,3],[2,6],[8,10],[15,18]], 1输出: [[1,6],[8,10],[15,18]]。 2解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]方法一 合并重叠思路:从示例入手:[1, 3] [2, 6] 是否可以合并只要对比 [1, 3]的最大值 3,[2, 6]的最小值 2,3 >= 2 ,则说明可以合并,否则不能。.[1, 3] [2, 6] [8,10],从3个来看,如果 [2, 6原创 2020-11-18 14:36:12 · 1099 阅读 · 0 评论 -
js算法--搜索二维矩阵 II和计算右侧小于当前元素的个数
搜索二维矩阵 II编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。实例现有矩阵 matrix 如下: [ 3 [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ] 给定 target = 5,返回 true。原创 2020-11-17 16:45:13 · 212 阅读 · 0 评论 -
log4js node日志管理
安装npm install --save log4js增加配置文件根目录下新建config目录 conifg目录下全为配置文件config目录下 新建文件 logs.jsvar path = require('path');//日志根目录var baseLogPath = path.resolve(__dirname, '../logs')/*报错输出日志*/// 请求日志目录let reqPath = '/request';// 请求日志文件名let reqFileName原创 2020-11-13 18:39:27 · 741 阅读 · 2 评论 -
前端深色模式,浅色模式
代码<!DOCTYPE html><html lang="en"><head> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/> <meta charset="UTF-8"> <title>Title</title> <style> *原创 2020-11-06 18:53:48 · 856 阅读 · 0 评论 -
webRtc视频点对点聊天
代码参考:https://github.com/niuyueyang/videoChat/tree/master原创 2020-11-06 16:17:34 · 301 阅读 · 0 评论 -
前端算法
两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解法一va...原创 2019-11-28 19:14:22 · 128 阅读 · 0 评论 -
js上拉下拉回弹
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-U...原创 2019-11-22 11:55:01 · 1213 阅读 · 0 评论 -
小程序骨架屏
/Components/Skeleton/Skeleton.jsComponent({ properties: { bgcolor: { type: String, value: '#FFF' }, selector: { type: String, value: 'skeleton' }, loadin...原创 2019-11-18 11:34:19 · 169 阅读 · 0 评论 -
async-validator
参考地址https://github.com/tmpfs/async-validatehttps://www.cnblogs.com/wozho/p/10955525.html基本使用定义一个 descriptor,将它传入 schema,得到一个 validator。将需要校验的对象和回调传入 validator.validate 方法中。注:descriptor 是对校验规则的描...原创 2019-11-16 16:43:46 · 1280 阅读 · 0 评论 -
axios简易版源码分析
https://github.com/niuyueyang/axios/tree/master原创 2019-11-16 11:53:58 · 117 阅读 · 0 评论 -
pwa demo
html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="./index.css"/></head>...原创 2019-11-14 16:09:09 · 328 阅读 · 0 评论 -
Promise实现(更新中)
第一版// Promise.jsconst PENDING = 'pending';const FULLFILLED='fullfilled'const REJECTED='rejected'function Promise(excutor){ let self = this; //缓存当前Promise实例 self.status='pending';//设置状态 ...原创 2019-10-30 22:37:54 · 105 阅读 · 1 评论 -
leetcode,牛客网 javascript版本(更新中)
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。(假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。)var reverse = function(x) { const res=(Math.abs(x)+'').split('').reverse().join(...原创 2019-06-04 09:44:15 · 196 阅读 · 0 评论 -
js设计模式(更新中)
链式调用var methods=function () {}Function.prototype.addMethods=function(name,fn){ this[name]=fn; return this;}methods.addMethods('checkName',function () { console.log(111) return this;}).add...原创 2019-06-26 17:51:08 · 94 阅读 · 0 评论 -
ast
class类型转换var code=`class Bird{ constructor(weight){ this.weight=weight; } fly(){ console.log('fly') } eat(){ console.log('eat') }}`;//babel核心库,用来实现核心的转换引擎let babel=require('babel-cor...原创 2019-06-24 14:37:13 · 369 阅读 · 0 评论 -
js拖拽排序
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style> *{ margin: 0; padding: 0; } ul { list-style: no...原创 2019-07-11 15:23:46 · 934 阅读 · 0 评论 -
js设计者模式
观察者模式class Event { constructor () { this.callbacks = {} } $off (name) { this.callbacks[name] = null } $emit (name, args) { let cbs = this.callbacks[name] if (cbs) { ...原创 2019-08-09 08:58:01 · 259 阅读 · 0 评论 -
ie8兼容性解决
css3媒体查询在ie8的css位置引入respond.jsie8不支持html5新标签html5shiv.js,在页面中引用html5shiv.js文件。必须添加在页面的元素内,因为IE浏览器必须在元素解析前知道这个元素,所以这个js文件不能在页面底部引用。rem不兼容在页面中引用rem.js文件。需要引用在页脚,也就是末尾,在所有css文件引用和DOM元素之后background...原创 2019-08-21 08:55:44 · 146 阅读 · 0 评论 -
虚拟dom
https://juejin.im/post/5d5d32e251882545e41e655d原创 2019-08-25 18:56:04 · 70 阅读 · 0 评论 -
js函数实现
// call实现// 思路:将要改变this指向的方法挂到目标this上执行并返回Function.prototype.mycall=function(context){ if(typeof this!=='function'){ throw new TypeError('not function'); } context=context||window; context.fn=...原创 2019-08-25 23:29:43 · 114 阅读 · 0 评论 -
vue-cli单元化测试(更新中)
利用jest进行测试新建jest.config.jsmodule.exports = { moduleFileExtensions: [ 'js', 'jsx', 'json', 'vue' ], transform: { '^.+\\.vue$': 'vue-jest', '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|wof...原创 2019-08-31 23:26:24 · 153 阅读 · 0 评论 -
图片,文件上传,element总结
图片转换为base64<input type="file" id="file_image_upload" @change="fileChange" accept="image/jpeg,image/png">fileChange(event){ let f = document.getElementById('file_image_upload').files[0]; if...原创 2019-06-05 10:20:11 · 460 阅读 · 0 评论