js算法
风清云淡_A
知识在于积累,成功在于坚持
展开
-
原生js 实现 鼠标移动跟随的案例
原生js实现的鼠标滑过图标效果,实现起来比较简单,重点就是计算角度弧度来求出left,top的值,看效果。原创 2022-11-26 23:43:11 · 345 阅读 · 0 评论 -
原生js 实现mac上的鼠标滑过图标的效果方法
原生js实现的鼠标滑过图标效果,实现起来比较简单,重点就是计算放大缩小的比例,看效果。原创 2022-11-26 12:44:29 · 252 阅读 · 0 评论 -
js算法的深度优先遍历和广度优先遍历
深度优先遍历实现方式1//深度优先遍历方法let tree = { id: '1', title: '节点1', children: [ { id: '1-1', title: '节点1-1' }, { id: '1-2', title: '节点1-2', children: [{ id: '2', title: '节点2'原创 2022-04-13 15:44:22 · 4728 阅读 · 1 评论 -
js数组里面的重复对象的去重,合并不同的属性的处理方法
重复数组的过滤去重,并且合并不同的属性,比较抽象!具体的看下面的数据格式var arr = [ { data: [ { xh: '1', name: '张三', value: '1360', postion: [{ d: '上海' }] }, { xh: '2', name: '李四', value: '1120', postion: [{ d: '广州' }] } ] },原创 2021-07-22 16:33:08 · 412 阅读 · 0 评论 -
JS数据结构与算法之链表
JS数据结构与算法之链表这是算法系列文章第一篇,参考的是<<javascript数据结构与算法>>1.链表的概念, 可以去百度查阅2.链表的实现以下是基本的数据结构 function LinkList(){ var Node = function(element){ this.element = element this.next = null }}链表末原创 2021-05-26 12:45:57 · 93 阅读 · 0 评论 -
原生js实现元素的圆周运动
我们想实现的需求是,div的圆周运动, //角度就是两边的夹角//1弧度所对应的概念圆的周长//Π⚪的弧度是2Π===360°//1°=Π/1801弧度=180°/ΠHTML代码 <div id="div1"></div>JS代码 window.onload = function () { var oDiv = document.getEle...原创 2021-05-04 15:52:31 · 388 阅读 · 0 评论 -
js中的一个一维数据转二位数据显示效果
1.动态创建一系列的div,然后显示在body中,这个效果比较简单,如下展示 var oDiv = document.getElementsByTagName("div"); for (var i = 0; i < 100; i++) { document.body.innerHTML += "<div>" + i + "</div>"; } console.log(oDiv);原创 2021-05-03 22:54:58 · 96 阅读 · 0 评论 -
js算法-两种将数组数据转为树结构记录
let arr = [ { id: 2, name: "部门B", parentId: 0 }, { id: 3, name: "部门C", parentId: 1 }, { id: 1, name: "部门A", parentId: 2 }, { id: 4, name: "部门D", parentId: 1 }, { id: 5, name: "部门E", parentId: 2 }, { id: 6, n.原创 2021-03-23 22:59:33 · 284 阅读 · 0 评论 -
JS 中合并数组中的多个对象为一个的方法
var arrObj = [{a:1, b:2},{c:3, d:4},{e:5, f:6}];//mergedObj = {a:1, b:2, c:3, d:4, e:5, f:6}//es6的解决方式const arrObj = [{a: 1, b: 2}, {c: 3, d: 4}, {e: 5, f: 6}];console.log(arrObj.reduce(function(result, current) { return Object.assign(result, cu.原创 2020-06-15 13:11:09 · 1569 阅读 · 0 评论 -
算法系列4--js选择排序
选择排序也是分内外两层,跟冒泡排序比,选择排序是不稳定的。需要借助交换函数 function swap(i, j, array) { var temp = array[j]; array[j] = array[i]; array[i] = temp; }取外层的每一轮的i为基准值,与内层的j进行比较,如果j项比min项小...原创 2019-07-29 15:49:56 · 81 阅读 · 0 评论 -
算法系列3--js冒泡排序
//i是外层的游标,j是内层的元素 function swap(i, j, array) { var temp = array[i]; //临时存储位置的值 array[i] = array[j]; //把j位置的值交给位置 array[j] = temp; //临时存储的值交给j位置 }/* function...原创 2019-07-29 14:50:52 · 92 阅读 · 0 评论 -
算法系列1--js数组排序
两个数组合并成一个数组请把两个数组 ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'D1', 'D2'] 和 ['A', 'B', 'C', 'D'],合并为 ['A1', 'A2', 'A', 'B1', 'B2', 'B', 'C1', 'C2', 'C', 'D1', 'D2', 'D']。自己研究的解法:var a = ['A1', 'A2'...原创 2019-07-11 13:18:14 · 360 阅读 · 1 评论 -
算法系列1--js转置矩阵
给定一个矩阵A,返回A的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]输入:[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]见图思路分析:此处省略1000字,重点MARK:1.输出的数组长度是...原创 2019-07-10 17:35:35 · 291 阅读 · 0 评论 -
算法系列1
给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。分析:思路很多,基本是遍历这个数组,进行逐个相加找出那个元素,返回下标var twoSum = function(nums, target) { var len = nu...原创 2019-07-10 13:05:39 · 82 阅读 · 0 评论 -
js基本算法总结(二)
算法--最少硬币找零//最少硬币找零 function MinCoinChange(coins){ var coins = coins var cache = {}; this.makeChange = function (amount) { var self = this...原创 2019-06-24 20:34:33 · 132 阅读 · 0 评论 -
js基本算法总结(一)
//判断一个单词是否是回文//需求就是正反都是一样的function checkPalindrom(str){ return str === str.split('').reverse().join('')}console.log(checkPalindrom('manam'))//数组的去重// [1,13,24,11,11,14,1,2]// 需求是得到[1...原创 2019-06-24 20:31:35 · 433 阅读 · 0 评论