javascript
文章平均质量分 75
微芒不朽
随心远行,宁静致远。
展开
-
【Bun1.0】使用 Bun.js 构建快速、可靠和安全的 JavaScript 应用程序
Bun 是一个现代的JavaScript运行环境,如Node, Deno。主要特性如下:启动速度快。更高的性能。完整的工具(打包器、转码器、包管理)。原创 2023-09-12 23:34:21 · 731 阅读 · 0 评论 -
Proxy代理数据拦截方法
Proxy 本质上是对某个对象的劫持,这样它不仅仅可以监听对象某个属性值的变化,还可以监听对象属性的新增和删除。Proxy.revocable()方法可以用来创建一个可撤销的代理对象。该方法的返回值是一个对象,其结构为: {“proxy”: proxy, “revoke”: revoke}对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)。方法用于拦截对象的读取属性操作。方法是设置属性值操作的捕获器。方法用于拦截对对象属性的。原创 2022-11-30 23:21:15 · 898 阅读 · 1 评论 -
【Leetcode 346/700】79. 单词搜索 【中等】 回溯深度搜索JavaScript版
【Leetcode 346/700】79. 单词搜索 【中等】 回溯深度搜索JavaScript版1.题目n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:输入:board = [["A","B","C","E"],["S","F","C","S"],["A","原创 2022-05-13 23:27:44 · 246 阅读 · 0 评论 -
【leetcode】剑指 Offer II 105. 岛屿的最大面积-【深度优先DFS】
给定一个由 0 和 1 组成的非空二维数组 grid ,用来表示海洋岛屿地图。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。示例 1:输入: grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,原创 2022-04-10 00:18:16 · 268 阅读 · 0 评论 -
【nodejs进阶之旅(2)】:使用koa2+mysql 实现列表数据分页
1.展示效果(分页)2.分页主要字段分页主要字段包括 pageSize 每页条数、pageNum 第几页、startRow 当前开始页编号、endRow 当前结束页编号、total 总数量。主要是根据前端分页的参数,进行处理后,返回前端正确的数据,其实是一个很常见且简单的功能。但是是非常也是非常重要的。pageSize 每页条数pageNum 第几页startRow 当前开始页编号endRow 当前结束页编号total 总数量计算 3.startRow 和 endRow封装成一个函原创 2022-03-26 16:50:22 · 1674 阅读 · 0 评论 -
Koa2+mysql 搭建用户信息注册和登录接口服务
Koa2+mysql 搭建用户信息注册和登录接口服务原创 2022-03-15 15:44:36 · 1008 阅读 · 0 评论 -
速算24 -JavaScript-穷举
给定任意4个自然数,请给出通过4则运算,使结果为24的算法,并且每个数在算式中使用一次。如果无法通过上述规则得到24,则输出“无法计算得到24”。如果给出4个数为2、3、4、5,程序的输出结果应是一个表达式:(5+3-2)*4如果给出的4个数是1、1、1、1,程序的输出结果应该是:无法计算得到24要求:提交算法思路即可。思路:先分析一下穷举包含多少种情况:1、操作数。由于是给定的4个数,所以把这个4个数进行全排列,共有:24种2、运算符。4个数之间有3个运算符,每个运算符有4种选择,共有:64原创 2022-03-10 09:05:41 · 1042 阅读 · 0 评论 -
一看就懂,一写就懵?搞懂回溯算法,一口气刷了20多道题
一、回溯算法1.1什么是回溯?回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。——摘自《百度百科》1.1 一般步骤:针对所给问题,定义问题的解空间,它至少包含问题的一个(最优)解。确定易于搜索的解空间结构,使得能用回溯法方便地搜索整个解空间 。以深度优先的方式搜索解空间,并且在搜索过程中用剪枝函数避免无效搜索。1.2 如何理解回溯算法?为问题建立解空间结构在解空间结构上进行DFS搜索设立回溯出口原创 2021-12-26 16:38:14 · 501 阅读 · 0 评论 -
数据结构:一文看懂二叉搜索树 (JavaScript)
二叉搜索树介绍二叉搜索树是一种节点值之间具有一定数量级次序的二叉树,对于树中每个节点:若其左子树存在,则其左子树中每个节点的值都不大于该节点值;若其右子树存在,则其右子树中每个节点的值都不小于该节点值。满足条件若左子树不为空,则左子树上左右节点的值都小于根节点的值;若它的右子树不为空,则它的右子树上所有的节点的值都大于根节点的值;它的左右子树也要分别是二叉搜索树;查询节点过程是,比较元素值是否相等,相等则返回,不相等则判断大小情况,迭代查询左、右子树,直到找到相等的元素,或子节点.原创 2021-11-20 22:59:05 · 413 阅读 · 0 评论 -
LeetCode 算法题系列(第一周 25道)
【算法进度 213/400 (〃‘▽’〃)】,继续加油!136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4哈希表/** * @param {number[]} nums * @return {number} */var single.原创 2021-10-02 23:05:00 · 295 阅读 · 0 评论 -
【红隼书签】自定义光影、自定义背景、亮度和主题功能
kestrel-bookmark 红隼书签介绍????????????【红隼书签】一款简洁的在线书签导航网站。同步印象中文的web导航数据;可以修改数据;全局搜索筛选功能;单页面完成逻辑非常简单,新手小白也能完成二次修改开发;采用granim插件完成背景动画;可选择更多动画效果;炫酷光晕背景动画效果。网址书签========注意:????本项目会持续新增功能,但持续维护。如使用中发现问题,请留言或者提交 issue 。谢谢!!!安装步骤1.克隆项目 https://gitee.com/zh原创 2021-07-10 16:28:14 · 578 阅读 · 2 评论 -
Element限制只能选择当前年已经过去的月份(包含当月)
pickerOptions: { disabledDate(time) { return time.getTime() < (new Date((new Date().getFullYear()).toString())).getTime() || time.getTime() > Date.now() } }原创 2021-05-25 12:25:25 · 599 阅读 · 4 评论 -
【算法】搜索二维矩阵 暴力解法&二分法 4种语言
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3输出:true示例 2:输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13输出:false提示: m ==.原创 2021-03-30 22:58:14 · 207 阅读 · 0 评论 -
【贪心算法】空酒瓶换酒问题
小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。请你计算 最多 能喝到多少瓶酒。示例 1:输入:numBottles = 9, numExchange = 3输出:13解释:你可以用 3 个空酒瓶兑换 1 瓶酒。所以最多能喝到 9 + 3 + 1 = 13 瓶酒。示例 2:输入:numBottles = 15, numExchange = 4输出:19解释:你可以用 4 个空.原创 2020-09-22 19:12:32 · 1633 阅读 · 1 评论 -
【贪心算法】按要求补齐数组
给定一个已排序的正整数数组 nums,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。示例 1:输入: nums = [1,3], n = 6输出: 1 解释:根据 nums 里现有的组合 [1], [3], [1,3],可以得出 1, 3, 4。现在如果我们将 2 添加到 nums 中, 组合变为: [1], [2], [3], [1,3.原创 2020-09-22 19:10:30 · 155 阅读 · 0 评论 -
【贪心算法】找到买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价原创 2020-08-27 22:45:58 · 197 阅读 · 0 评论 -
数组中重复的数字 4种解法
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 1000001.排序var findRepeatNumber = function (nums) { nums.sort((a,b)=>a-b) .原创 2020-08-22 13:28:33 · 674 阅读 · 0 评论 -
各位相加 循环&归纳法
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?循环:var addDigits = function (num) { var res = num.toString().split('').reduce((accur, cur) => accur+原创 2020-08-12 19:27:33 · 164 阅读 · 0 评论 -
最大三角形面积 鞋带公式& 海伦公式
给定包含多个点的集合,从其中取三个点组成三角形,返回能组成的最大三角形的面积。示例:输入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]]输出: 2解释: 这五个点如下图所示。组成的橙色三角形是最大的,面积为2。注意: 3 <= points.length <= 50. 不存在重复的点。 -50 <= points[i][j] <= 50. 结果误差值在 10^-6 以内都认为是正确答案。思路:.原创 2020-08-10 20:08:54 · 1015 阅读 · 0 评论 -
前端算法-杨辉三角 动态规划法
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]分析思路:找规律1.每一行前后元素都是12.中间的元素等于上面元素和上面左边元素之和,即temp[j] = res[i - 1][j - 1] + res[i - 1][j]解题代码/** * @param {numb.原创 2020-08-09 22:27:29 · 180 阅读 · 0 评论 -
前端算法 岛屿的最大面积 DFS(深度优先搜索)
给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,1,1,0,1,0,0,0,0,0,0,0,0], [0原创 2020-08-09 12:52:31 · 377 阅读 · 0 评论 -
【leetcode】204. 计数质数 暴力 & 埃拉托斯特尼法
统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。js暴力解法:/** * @param {number} n * @return {number} */var countPrimes = function(n) { var count = 0; function isPrime(num){ for(var i=2;i<=Math.sqrt(num);i++){ if(原创 2020-08-08 18:17:48 · 103 阅读 · 0 评论 -
【leetcode】221. 最大正方形 动态规划法
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4动态规划法分析:我们用 dp(i,j)dp(i, j)dp(i,j) 表示以 (i,j)(i, j)(i,j) 为右下角,且只包含 111 的正方形的边长最大值。如果我们能计算出所有 dp(i,j)dp(i, j)dp(i,j) 的值,那么其中的最大值即为矩阵中只包含 111 的正方形的边长最大值,其平方原创 2020-08-08 18:17:03 · 162 阅读 · 0 评论 -
微信小程序--365笔记第32天---数组排序,距离最近
1.实现的是数组的排序,以距离排序,将距离最近的显示在上面;2.可以应用到其他数组排序,都是可以用的;wxml: <view> <view>原数组</view> <view wx:for="{{array}}"> <text>{{item.name}}</text> <text>{{item.distance}}</text>原创 2020-07-05 21:02:54 · 557 阅读 · 0 评论 -
微信小程序--365笔记第33天---点击一键复制
1.点击按钮,将需要复制的内容,复制到剪贴板,到指定的粘贴;wxml: <view class="flex flex-vc"> <view class="sm4 flex flex-vc flex-hc" selectable="true">{{url}}</view> <button class="flex flex-vc flex-hc" bindtap="copy" type="primary">一键复制</but原创 2020-06-30 09:25:05 · 237 阅读 · 0 评论 -
微信小程序--365笔记第36天---拼团、秒杀倒计时
1.实现一个拼团、秒杀计时的功能和页面;1.模拟商品列表数据 goodsList;2.在 onLoad 周期函数中对活动结束时间进行提取;3.建立时间格式化函数 timeFormat;4.建立倒计时函数 countDown;5.在 onLoad 周期函数的提取结尾执行倒计时函数 countDown。倒计时1.获取当前时间,同时得到活动结束时间数组;2.循环活动结束时间数组,计算每个商品活动结束时间的倒计时天、时、分、秒;3.用 setData 方法刷新数据;4.每个一秒执行一次倒计时函数原创 2020-06-30 09:23:10 · 266 阅读 · 0 评论 -
微信小程序---365笔记第39天---答题小程序顶部模块转换
需求:1.实现该模块题目答完后,模块状态跳转到下一个;2.显示当前答题的进度条;wxml: <!-- 顶部状态模块 --> <view class="con1"> <view class="con_module"> <view class="con_module_title {{status1}}">数学</view> <view class="con_module_title原创 2020-06-30 09:22:36 · 254 阅读 · 1 评论 -
微信小程序---365笔记第41天---多层数组的列表渲染
记:1.多层数组的列表渲染;2.点击radio所在的行,也可以选中radio;1.多层数组的列表渲染;数据:data:{ name: { name: [ { '昵称': "夏天的列车" }, { '昵称1': "夏天的列车1"}, { '昵称2': "夏天的列车2"} ] }}wxml: <view wx:for="{{name.name}}" wx:for-index="idx" wx:for-item="item1">原创 2020-06-30 09:22:02 · 392 阅读 · 0 评论 -
微信小程序---365笔记第42天---搜索框功能封装,调用键盘搜索
需求:1.搜索框功能的实现,点击聚焦,右边显示取消按钮;2.调起手机键盘的搜索键;wxml: <!--搜索框开始--> <view class="index-search-bar"> <view class="index-search-bar__form"> <!--点击之后,出现input框 --> <view class="index-search-bar_原创 2020-06-30 09:21:31 · 408 阅读 · 0 评论 -
微信小程序---365笔记第43天---模块选择、获取模块数据、显示模块数据
需求:1.选择模块相应的模块,单击选择相应的模块,两次点击相同的模块,模块选中状态取消;2.获取选中模块的数据,并将模块的数据通过弹窗显示出来;wxml: <!-- 选择不同的模块 --> <view class="module"> <block wx:for="{{modlue}}" wx:key="module"> <view class="module-circle {{item.selecte原创 2020-06-30 09:21:01 · 346 阅读 · 0 评论 -
微信小程序---365笔记第44天---获取用户授权地理位置,经纬度
需求:1.在进入页面时,请求用户地理位置授权,获取用户当前的地理位置;2.获取用户的经纬度,有时候需要通过经纬度来计算用户与店铺之间的距离;步骤:1.微信小程序后台将域名添加到当前使用的APPID域名里面;2.下载qqmap.wx-jssdk.js和qqmap.wx-jssdk.min.js包,放在小程序所在的文件夹里面;3.在需要获取用户地理位置的页面顶部,请求下载的包;代码: var QQMapWX = require('../qqmap-wx-jssdk.js'); va原创 2020-06-30 09:20:28 · 1251 阅读 · 0 评论 -
微信小程序---365笔记第47天---关键字匹配搜索框
1.点击聚焦,右侧出现取消按钮;2.调起键盘上面的search按钮;3.输入搜索的内容,匹配到跟含有输入字段的内容; <!--搜索框开始--> <view class="index-search-bar"> <view class="index-search-bar__form"> <!--点击之后,出现input框 --> <view class="index-sear原创 2020-06-30 09:19:54 · 452 阅读 · 0 评论 -
微信小程序---365笔记第48天---上一题,下一题
1.上一题,下一题;2.点击所在行,也可选中radio或者check-box data:{ dataList:[], n:0, num:1 }, onLoad: function(options) { this.toNext(); }, //上一题 toBefore(){ var n = this.data.n--; var showinfo = this.da原创 2020-06-30 09:19:22 · 1641 阅读 · 0 评论 -
微信小程序---365笔记第49天---小程序支付功能封装
1.点击按钮,实现调起支付按钮,并且支付; // 验证支付 toPay() { wx.showLoading({ title: '正在支付...', }) let slet = this; var token = wx.getStorageSync('token'); wx.login({ //登陆获取code success: function (res) { wx.reque原创 2020-06-28 17:23:23 · 243 阅读 · 0 评论 -
微信小程序---365笔记第73天--动态将数据存入缓存
1.实现将动态数据存入缓存,并在页面循环出来;展示刚才存入缓存的数据;js://选中股票后 bindSearch: function () { var that = this; var value = that.data.inputVal;if (that.data.inputVal.length != 0) { var arr = []; var history = that.data.hisList; if (history.length < 10) { hi原创 2020-06-28 17:22:53 · 462 阅读 · 0 评论 -
微信小程序---365笔记第76天--使用API工厂后台搭建程序
1.使用API工厂后台搭建程序:API工厂前端接口:https://api.it120.cc/doc.html1.修改自己的个性域名,方便接下来小程序端的调用;2.安装API工厂模块;3.配置小程序项目打开根目录的 app.js 文件,定位至 184 行,把你设置的个性域名名称填入即可;globalData:{userInfo:null,subDomain: "wanzikun", // 如果你的域名是: https://api.it120.cc/abcd 那么这里只要填写 abcdve原创 2020-06-28 17:22:19 · 1522 阅读 · 0 评论 -
小程序---365笔记第5天---常用方法
1.单提示函数(应用场景只想用户点击确认执行的时候)function showModal(cont,flag,fn){ wx.showModal({ title: '提示', content: cont, showCancel:flag, success(res) { if (res.confirm) { } else if (res.cancel) { } }, complete(){原创 2020-06-28 17:21:48 · 390 阅读 · 0 评论 -
小程序---365笔记第5天---小程序京东首页
用微信开发者工具写了一下京东的首页;总结在页面编写中遇到的一些需要注意的地方;先看下页面;在制作这个项目列表的时候,发现项目循环出来以后,并不是直接就排列在容器里面,需要添加一个flex-flow:nowrap;和flex弹性布局里面有:flex-direction: row(初始值) | row-reverse | column | column-reverse flex-wrap: nowrap(初始值) | wrap | wrap-reverse;flex-direction定义了弹原创 2020-06-28 17:21:17 · 321 阅读 · 0 评论 -
小程序---365笔记第6天---常用方法
// 获取服务项目列表serviceCate:function(){ var that = this; wx.request({ url: hostUrl + '/v1/Kquery/?table=server', data:{}, success:function(res){ //console.log(res); var s_lists = res.data.data; that.setData({原创 2020-06-28 17:20:52 · 370 阅读 · 0 评论 -
小程序---365笔记第10天---CSS样式
1.calc()能让你给元素的做计算,你可以给一个div元素,使用百分比、em、px和rem单位值计算出其宽度或者高度,比如说“width:calc(50% + 2em);calc表 达式中有“+”和“-”时,其前后必须要有空格; width: calc(100% - 100rpx);屏幕宽减去右边的100rpx; padding: 30rpx 50rpx 5rpx; 表示左右内边距为50,上30,下5; flex-flow 属性是 flex-direction 和 flex-wrap 属性的复合.原创 2020-06-28 17:20:14 · 109 阅读 · 0 评论