![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS
阿布的小布
新增GitHub仓库,存放常见函数写法,欢迎PR
仓库地址:https://github.com/bushaoqing/learn-algorithm.git
展开
-
简单模拟发布订阅模式之on、once、off、emit、clear
简单模拟发布订阅模式之on、once、off、emit、clear原创 2022-01-24 14:16:33 · 1265 阅读 · 0 评论 -
一维数组转为tree
一维数组转为tree原创 2022-01-18 11:47:16 · 636 阅读 · 0 评论 -
获取url中search参数对象
获取url中search参数对象原创 2022-01-17 17:03:09 · 531 阅读 · 0 评论 -
简单实现Promise
简单实现Promise原创 2022-01-17 16:16:57 · 462 阅读 · 0 评论 -
笔记:三个数组,把他们的所有组合穷举出来,最终得到这样一个数组
三个数组,把他们的所有组合穷举出来,最终得到这样一个数组原创 2021-12-28 16:23:15 · 752 阅读 · 0 评论 -
笔记:给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺(逆)时针顺序螺旋排列的正方形矩阵
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺(逆)时针顺序螺旋排列的正方形矩阵原创 2021-12-28 14:46:42 · 909 阅读 · 0 评论 -
笔记:给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度
给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度原创 2021-12-27 15:22:03 · 4372 阅读 · 2 评论 -
笔记:我们定义「顺次数」为:每一位上的数字都比前一位上的数字大 1 的整数。
我们定义「顺次数」为:每一位上的数字都比前一位上的数字大 1 的整数。原创 2021-12-27 11:38:51 · 259 阅读 · 0 评论 -
笔记:最长的斐波那契式子序列
最长的斐波那契式子序列原创 2021-12-27 10:01:56 · 102 阅读 · 0 评论 -
笔记20211126
let nums=[ [1,2,3,4,5,6], [2,3,4,5,6,7], [3,4,5,6,7,8], [4,5,6,7,8,9],]/* * 1 * 2 2 * 3 3 3 * 4 4 4 * 5 5 5 * 6 6 6 * 7 7 * 8 */function f(arr) { const arrLen = arr.length const len = arrLen + arr[0].length - 1 for (let i = 0原创 2021-11-26 17:29:23 · 69 阅读 · 0 评论 -
笔记:只保留数字以及数字字符串,并且去重并排序
/* 题目 输入: [1, 5, 4, '2', '3a', 'ab', {name: 'tmp'}, 4, 5, 5, 5] 输出: [1, 2, 4, 5] // 只保留数字以及数字字符串,并且去重并排序*/ var list = [1, 5, 4, '2', '3a', 'ab', {name: 'tmp'}, 4, 5, 5, 5]function getNumer(arr) { let newArr = [...new Set(arr)] let原创 2021-11-16 20:43:26 · 259 阅读 · 0 评论 -
笔记:简单的实现bind、apply、call
Function.prototype.myBind = function() { // console.log('typeof arguments: ', typeof arguments); // console.log('arguments: ', arguments); let fn = this let ags = [...arguments].slice(1) let context = arguments[0] return function () { let原创 2021-11-16 17:20:55 · 514 阅读 · 0 评论 -
如何知道滚动的页面滑到了底部
如何知道滚动的页面滑到了底部1、滚动页面的高度document.querySelector('.scroll-page').scrollHeight2、浏览器可视区的高度window.innerHeight3、滚动的高度document.querySelector('.scroll-page').scrollTop当然使用减法可知是否滚动到底部document.querySelector('.scroll-page').scrollHeight - window.innerHeight原创 2021-11-16 15:21:30 · 1141 阅读 · 0 评论 -
笔记:给定一个数组,然后乱序输出数组
const arr1 = [1,2,3,4,5]function f1(a) { let res = [] const f2 = function(arr) { let len = arr.length if (len > 0) { let index = Math.floor(Math.random()*len) res.push(arr[index]) ar原创 2021-11-12 20:54:35 · 260 阅读 · 0 评论 -
记录一个防抖函数在界面打印鼠标坐标的笔记
<!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-11-12 20:52:41 · 409 阅读 · 0 评论 -
给定数组 [0,1,2,3],要求输出其全排列
给定数组 [0,1,2,3],要求输出其全排列:结果如下/** * @param {number[]} nums * @return {number[][]} */ var permute = function(nums) { let matrix = []; const subfunc = (arr, temp) => { // 终止条件:也就是排列结果 if (arr.length === 0) { matrix.push(temp)原创 2021-11-12 11:23:48 · 926 阅读 · 0 评论 -
初始化CSS样式格式化
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,l原创 2021-10-28 10:15:05 · 129 阅读 · 0 评论 -
上传处理进度事件
axios.create({ baseURL: 'http://xxx.com', withCredentials: true }).request({ url: '/aaa/bbb/uploadFile', method: 'post', data: params, // 上传处理进度事件 onUploadProgress: process => { console.log('上传进度百分比: ', Math.floor(proces原创 2021-10-09 11:53:13 · 74 阅读 · 0 评论 -
一次请求多个接口,依次输出结果(简单实现Promise.all方法)
var time = [2000, 1000, 500]function promiseAll(arr) { let count = 0 let res = [] return new Promise((resolve, reject) => { arr.forEach((el, i) => { getApi(el).then(r => { count++ // 按照顺序依次输出结果 res[i] = r原创 2021-10-09 10:39:28 · 1103 阅读 · 0 评论 -
js实现深拷贝cloneDeep
function cloneDeep(obj, hasMap = {}) { if (hasMap[obj]) return if (!typeof obj === 'object') return obj let result = obj instanceof Array ? [] : {} hasMap[obj] = true for (const key in obj) { if (Object.hasOwnProperty.call(obj, key)) {原创 2021-09-22 10:08:09 · 687 阅读 · 0 评论 -
括弧匹配 函数
const keyMap = {‘{’: ‘}’,‘[’: ‘]’,‘(’: ‘)’}function isFormat(str) {if (!str) return false // 括弧匹配,你得有长度嘛let list = [] // 存储左半边括号const len = String(str).lengthif (len % 2) return false // 长度为基数,肯定不是成对的括弧for (let i = 0; i < len; i++) {const key原创 2021-09-17 09:48:06 · 125 阅读 · 0 评论 -
重温防抖+节流
防抖:输入框输入搜索,减少输入中没有必要的http请求function debounce (func, wait) { let timer = null; return function () { if (timer) { clearTimeout(timer); } timer = setTimeout(() => { func.apply(this, arguments); }, wait); }}window.onscroll = debounce(()原创 2020-11-10 20:04:17 · 65 阅读 · 0 评论 -
JS实现括弧匹配判断函数
function isMap (str) { if (!str.length) { throw Error('传入字符串无有效括弧!') } let list = [], length = str.length, map = { '{': '}', '[': ']', '(': ')' }; for (var i =0; i &原创 2020-11-07 10:12:59 · 136 阅读 · 0 评论 -
JS递归+缓存机制实现斐波拉契函数
let obj = { 1: 1, 2: 1};function F (n) { if (obj[n]) { return obj[n]; } obj[n] = F(n-1) + F(n-2); return obj[n];}缓存效果图:原创 2020-11-07 10:05:39 · 347 阅读 · 0 评论 -
ES6之Map重组数组对象
ES6之Map重组数组对象:后台返回数组对象,要求pro_id和az_id相同的对象,合并他们的namevar list = [ { pro_id: '123123', az_id: '234234', name: 'aa' }, { pro_id: '123123', az_id: '234234...原创 2020-05-06 23:13:11 · 1678 阅读 · 0 评论 -
前端清除网站缓存 cache
meta清除<META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="0">Ajax设置setRequest...原创 2020-03-22 16:44:04 · 497 阅读 · 0 评论