- 博客(31)
- 收藏
- 关注
原创 通过js解决 矩阵连乘 算法问题
matrixMultiplicationProblem = (x) => { //得到二维数组的 行(子数组个数) 列(子数组宽度) //写出 他们的 相乘算法 //每次计算完成后 得到新的数组 //递归可能比较好 //将结果存到一个数组 //例如 A*B*C*D*E*F*G // 相乘次数等于 行列相同的丢一个 然后其他相...
2019-10-11 20:38:25 676
原创 利用JS实现超范围大数乘法(n的n次方)(n^n)(n**n)
利用JS实现超范围大数乘法(n的n次方)(n^n)(n**n)//A code block<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, init...
2019-10-11 20:21:42 907
原创 用canvas实现一个简单的表
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Doc
2021-07-26 18:27:41 209
原创 实现bind、call、apply
let obj = { a: "123" };function test(b, c) { console.log(this.a) console.log(b); console.log(c);}test.call(obj, "call1", "call2");test.apply(obj, ["apply1", "apply2"]);test.bind(obj)("bind1", "bind2");/*** bind实现*/Function.prototype.mybind
2021-04-25 22:40:21 131
原创 css+js+intersectionObserver 实现无限延展瀑布流
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <s
2020-09-24 20:36:19 362
原创 前端hash路由的实现
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <s
2020-09-20 00:15:53 159
原创 js模拟实现call(很简单的方法)
Function.prototype['myCall'] = function (target, ...args) { //this为fncCall target.fn = this; return target.fn(...args);};function fncCall(test) { console.log(test); console.log(this.test);}fncCall.myCall({ test: '123' }, 789);
2020-09-20 00:03:43 711 2
原创 vue双向绑定的简单实现
因为这是没有看vue源码,只知道defineProperty,独自写的,所以很不标准,经供参考!<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
2020-09-19 20:45:53 120
原创 删除数组中任一“下标”的元素,数组元素可重复
let nums = [1,2,3,4,5] let i = 0; if (i <= 0) { nums.slice(i + 1); } else { [...nums.slice(0, i), ...nums.slice(i + 1)]; }
2020-09-19 18:28:11 160
原创 希望你能理解的快速排序 --- 用12张图 细节图解快速排序 !!
首先说一下快排的基本概念,从一个数组里面选一个基础值,然后将数组里所有大于这个基础值的数放到右边,小于这个基础值的放到左边。结合着以下观念看下方12张图,理解具体如何实现(可以先看图)将数组的第一个值8,拿出来,作为基础值,并存储到变量number中,让arr[0]空出来以供插入。从右往左开始比,是因为左边arr[0]空了出来,右边要是有比number(也就是8)大的数字,就可以直接移动到arr[0] (如图3,图4)。下标移动只有在: (如图5, 图6)a. 左下标比number小b. 右下
2020-09-13 19:33:06 698
原创 希望你能懂的动态规划算法-----硬币问题
1. 题目如下2. 动态规划思路动态规划的具体思路:如上图 :1. 第一层的dp(11)表示没有硬币加入2. 第二层的1+dp(11-1)表示硬币1加入 (+1表示有一个硬币加入)3. 第三层 得到dp(0)实现上述方法, 我们要求出dp(1) dp(2) dp(3)…都等于多少就可以得到dp(11)的值表格1:我们求出当只有硬币1 的时候dp(0)到dp(11)的所需的硬币个数分别为dp(1) 1个dp(2) 2个………dp(11) 11个详细计算看 表格2
2020-09-09 18:50:00 790
原创 var和Let区别中,for输出五次5 的原因
{ var i=0; setTimeout(()=>{console.log(i),10}); { var i =1; setTimeout(()=>{console.log(i),10}); { var i=2; setTimeout(()=>{console.log(i),10}) } } } // 2 2 2 /** * 拥有函数定义域...
2020-08-16 22:47:06 506
原创 用JS实现 无重复字符的最长子串
/** * 无重复字符的最长字串 */var lengthOfLongestSubstring = function (s: string) { let m = s, j = 1, maxStrLength = 0, str; /** * 判断是否超出字符串范围 * 或者剩余字符串长度小于最大字符串长度 */ while (m[j] && m.length > maxStrLength) { /** * 截取不重复字符
2020-08-16 21:21:56 451
原创 JS 使用非矩阵实现, 寻找最大公共字符串
let str1 = 'asdwfjwakjgwakljgfwgjwighjwihjawijgaiowgzlksgjklwajklqmnfklmklqjdfklwjdklawjdklajwwfdklwjdklawjdklajwdljawlkdjkalwjdklawjgzkljfkwjfklzwjfjfklmklqjdfklwjdklawjdklajwwf';let str2 = 'awlgkawlzmvfklwjfkljfklwajflkawjfklawjjakljcklwajfklawwalfk
2020-08-14 22:52:38 208
原创 js 模拟new
function student(name) { this.cons = name;} student.prototype.test = '678'; //创建测试方法let a = new student('12412412');console.log('a: ', a); //new 出的结果function CopyNew(testFun, ...arr) { //模拟 new let obj = Object.create(testFun.prototype); //.
2020-08-07 03:47:02 115
原创 JS 实现找出字符串中第一个不重复的字符
let str = "firstUniqueChar(vfdcdvc)"; //测试用字符串for(let x of str) { let reg = new RegExp(`${x}`,'g'); //创建正则 if (str.match(reg).length == 1) { // 匹配正则, 如果匹配超过1个, 则表示有重复, 跳过, // 如果只匹配到一个, 则输出 console.log(x); //输出第一个不重复的字符 br.
2020-08-05 02:29:24 1076
原创 JS链表的创建、插入、删除 以及链表合并
class node { next: null | node; value: any; constructor(value: any) { this.value = value; this.next = null; }}class linkedList { head: null | node; length: number; constructor() { this.head = null;
2020-07-30 18:33:36 310
原创 js 最简单的url参数获取方式
let reg = /(?<=\?|&)[\w$]+=[\w$%]*/g;;let str = "https://www.nowcoder.com/discuss/200493?type=2&order=3&pos=17&page=1&channel=666&source_id=discuss_tag";str.match(reg);// ["type=2", "order=3", "pos=17", "page=1", "channel=666"
2020-07-26 23:47:53 161
原创 js不使用数组实现栈
class nodeZhan { key: any; next: null | nodeZhan; constructor(key: any) { this.key = key; this.next = null; }}class zhan { head: nodeZhan | null; length: number; constructor() { this.head = null; .
2020-07-26 23:32:43 179
原创 用JS中ES6的CLASS创建排序二叉树
1. 根据插入的数据最终应展示的结果具体代码class treeNode { value: any; left: treeNode | null; right: treeNode | null; constructor(value: any) { this.value = value; this.left = null; this.right = null; }}class tree { tree
2020-07-26 16:43:32 351
原创 Vue :六种方法实现,父子通信,直接上六合一示例 ,面试可看!!!
注释相当完整,可直接复制到html里文件,观察如何实现哦<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head>
2020-07-24 04:13:02 203
原创 最简单的js补零方法
function buling(a, length) { return a.padStart(length,0)}buling('10010', 8) //'00010010'
2020-07-22 02:00:13 1956
原创 可以看看我的节流和防抖
防抖:触发高频函数事件后,n秒内函数只能执行一次,如果在n秒内这个事件再次被触发的话,那么会重新计算时间。即是,短时间内只需要触发一次的事件function fn() { console.log(this)}let fangdou = function (fn, time) { let timeout; //闭包, 导致timeout未被回收 return function () { timeout ? clearTimeout(timeout) : fn
2020-07-21 03:35:58 94
原创 可以看看我用js 写的插入排序
function insertSort(array) { let count = 0; //记录每次往前插的最后一位 let mid = 0; //冒泡交换 for(let i = 1; i < array.length; i++) { if(a[i-1] > a[i]) { // 一个一个往前比较 mid = a[i]; //开始冒泡 for(let j = i - 1; j>=0; j--) { //判断前面有几个比a[i]大
2020-07-19 02:17:06 67
原创 可以看看 我对js 中 this的理解
就我目前所知,this的执行问题要从三中this讨论1. 普通函数里的this2. setTimeout里的this3. 箭头函数里的this1. 普通函数里的this### 普通函数里的this 指向定义它所在的环境//例如在全局下function a() { console.log(this)}a();// this == window//-------------------------------//在obj对象下let obj = { a: "123", b: fu
2020-07-18 20:57:11 74
原创 可以看看我对于原型链的理解
let foo = function () { this.name = "1234" }let test = new foo();Object.prototype.objTest = "1";Object.__proto__.objTest1 = "12";Function.prototype.fncTest = "123";Function.__proto__.fncTest1 = "1234";首先test = new foo(),是让test.proto == foo.prototyp
2020-07-18 18:51:20 97
原创 商场时间秒杀倒计时 简单实现
复制粘贴,修改start即可<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> &
2020-07-16 19:58:51 254
原创 nuxt+express 构建前后端分离项目中 使用token与中间件middleware
一定要考虑middlware同时与服务端和浏览器交互!!!middlware中间件代码import axios from 'axios'import getCookie from '~/uitls/getCookie'export default async function ({ app , req , redirect , route }){ let token ; if(req) { //req只有在服务端会触发 //当用户第一次进入页面时,会先触发服务端,继续访问其他页面,
2020-07-15 16:18:27 907
原创 通过读取table,不改变原数据数组,实现次序升降
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> <script type="text
2020-07-13 21:24:08 130
原创 二进制补零的简单方法 JS
二进制补零的简单方法灵感来自于JS的奇淫技巧function a(b,numBu) { return ( `00000000${b}`.slice(b.length, b.length+numBu)); // b 输入的二进制, // numBu 想要的二进制总位数}console.log(a('101010',8));
2020-07-05 21:03:45 3838
原创 js版贪吃蛇小游戏
游戏网址: http://117.78.10.38/test/snake.html用js 写的html贪吃蛇进阶版小游戏<!DOCTYPE html><html lang="en" id="html"><head> <meta charset="UTF-8"> <meta name="viewport" content="wid...
2019-10-13 13:09:47 193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人