算法
node_bin
这个作者很懒,什么都没留下…
展开
-
js 时间分片解决万级数据渲染问题
可以改用 requestAnimationFrame 去分批渲染,因为这个关于电脑自身刷新效率的,不管你代码的事,可以解决丢帧问题。是DOM节点,但并不是DOM树的一部分,可以认为是存在内存中的,所以将子元素插入到文档片段时不会引起页面回流。不是真实DOM树的一部分,它的变化不会触发DOM树的(重新渲染) ,且不会导致性能等问题。,文档片段接口,表示一个没有父级文件的最小文档对象。使用,用于存储已排好版的或尚未打理好格式的XML片段。这时候可以感觉出来渲染很快,但是如果渲染复杂点的dom会闪屏,原创 2023-08-22 16:12:21 · 424 阅读 · 0 评论 -
obj.a.b.c获取值的异常处理
等数据类型时就会出现报错。而且,我们往往通过后端从数据库获取到的数据,这个链路中,说不准哪一天就会在传递的过程中出现类似的情况。的方式去获取对象深层包含的值,但是,如果遇到。在平时开发过程中,总是会遇到类似于通过。方法,杜绝这种情况的发生。原创 2023-01-30 10:32:44 · 160 阅读 · 0 评论 -
数组扁平化(flat)常用实现方法
通过some来判断数组中是否有数组,通过while不断循环执行判断, 如果是数组的话可以使用 展开。... 每次只能展开最外层的数组,加上。原创 2022-09-20 11:57:23 · 451 阅读 · 0 评论 -
AES前后端加密的方法(适用于vue,react,小程序)
AES前后端加密的方法,后端java, 前端微信小程序,项目中需要针对重要数据进行加密传输。原创 2022-07-20 18:40:28 · 1122 阅读 · 0 评论 -
js 实现一个快速排序方法
"快速排序"思路的三个步骤:1. 在数据集中,选择一个元素作为基准2. 所有小于"基准"的元素,都移到"基准"的左边;所有大于"基准"的元素,都移到"基准"的右边。3. 对"基准"左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。function quickSort(arr){ if(arr.length<=1){ return arr} var baseIndex = Math.floor(arr.length / 2) ; //基准的下标原创 2022-04-28 11:55:37 · 268 阅读 · 0 评论 -
js实现数组的分片(将一维数组分成若干个二维数组)
废话不多说,直接上代码:let list = [1,2,3,4,5,6,7,8,9];/** * 数组的分片方法 * @param list 传入的数组 * @param size 每片的等分长度*/function arrSlice(list, size){ let temp = []; list.forEach((item, index) => { let key = Math.floor(index/size) if(!temp[key]){原创 2022-03-17 18:47:31 · 739 阅读 · 0 评论 -
写一个简单的希尔排序(选择排序的高级版)
希尔排序是插入排序的改进版本,弥补了插入排序在某些情况下的缺点。例如,当长度为100的数组,前面有序区域的数组长度为80,此时我们用第81个数去跟前面有序区域的所有元素比较大小,但恰巧第81个数又是这100个数里最小的,它本应该在索引为1的位置,如图所示本例中第81个数据的值为1,那么前面有序区域里的80个元素都要往后移动一个位置,这种情况就非常影响排序性能。因此,我们就要想办法尽可能早点让小的值靠前,让大的值靠后,这样就能避免上述情况了,这就是希尔排序要解决的问题。希尔排序也叫做缩小增原创 2021-10-27 16:26:02 · 86 阅读 · 0 评论 -
写一个简单的插入排序
插入排序是一种将指定元素与某个有序区域元素比较并交换位置的排序算法。我们先简单举个例子,假设现在有这样一个无序数组首先,我们把索引为0的元素看作区域,该区域是有序的,因为就只有一个元素,怎样排序都是它一个元素,所以就认为它是有序的。然后我们取出有序区域右边的第一个元素,即索引为1的元素 67,存到变量 temp 中。然后从有序区域的最右边开始,将元素依次与变量 temp 中的元素 67 比较,若大于67,则将位置向右移动一格;若小于67,则不需要继续遍历了,因为该区域是有序的。上代码:原创 2021-10-27 14:52:09 · 126 阅读 · 0 评论 -
js选择排序简单实现
选择排序跟冒泡排序非常类似,唯一的区别就是选择排序每次遍历时,将各个元素比较,将最大值或最小值的索引存放在一个变量中,全部比较完了以后,再将该索引上的元素进行就交换。简单来说就是选择排序是每次遍历交换一次,而冒泡排序每次遍历需要交换多次,因此选择排序一般来说是要比冒泡排序效率高一点的。同样的,我们来看一下选择排序(从小到大排序)的动图展示:看下代码实现:function selectionSort(arr){ let length = arr.length; for(let i=0;原创 2021-10-27 10:27:06 · 105 阅读 · 0 评论 -
写一个简单的冒泡排序
主要的思路其实就是从最左边开始,依次比较相邻两个元素的大小,若左边的数大于右边的数就进行交换,这样把所有的相邻元素都比较一遍以后,最右边的数就是其中最大的数了。紧接着又继续从最左边开始,依次比较各个相邻元素,并判断是否需要交换位置,但与第一遍不同的是,最右边的数不需要进行比较,因为它已经是最大的了。因此第二遍比较完后从右往左数第二个数是其中第二大的数。以此类推,就能将数据按从小到大的顺序排好了我们来看一下如何封装冒泡排序的函数吧function bubbleSort(arr)...原创 2021-10-26 18:15:01 · 241 阅读 · 0 评论