Js
MR.王二狗
一个前端码农
展开
-
js随机洗牌算法
const arr = [1,1,2,3,4,4];//随机排序for (let i = arr.length - 1; i >= 0; i--) { //生成任意随机数 const num = Math.floor(Math.random() * i); const temp = arr[num]; //从arr中取出来的随机元素 arr[num] = arr[i] //设置arr的随机元素为当前的for循环的值 arr[i] = temp; //.原创 2021-09-02 15:58:19 · 208 阅读 · 0 评论 -
使用函数柯里化实现add(1)(2)(3)
const add = (a, b, c) => a + b + c;const curry = (fn) => { let args = []; //返回一个函数 return function temp(...newArgs) { args.push(...newArgs);//储存数据 //数组长度和函数形参个数一致 if (args.length === fn.length) { con.原创 2021-08-16 16:51:55 · 979 阅读 · 0 评论 -
JS实现lodash的get方法
使用场景在 js 中经常会出现嵌套调用这种情况,如 a.b.c.d.e,但是这么写很容易抛出异常。你需要这么写 a && a.b && a.b.c && a.b.c.d && a.b.c.d.e,但是显得有些啰嗦与冗长了。特别是在 graphql 中,这种嵌套调用更是难以避免。这时就需要一个 get 函数,使用 get(a, 'b.c.d.e') 简单清晰,并且容错性提高了很多。function get(source...原创 2021-08-16 15:53:48 · 1547 阅读 · 0 评论 -
JS把一堆数组分成三份尽量相等
思路: 先对数组进行排序,,然后取出平均值计算function f1 (arr,count){ //数组从大到小排序 arr.sort((a,b) => b - a); //计算平均值 let avg = arr.reduce((a,b) => a + b) / count; //从大到小求和,取最接近平均值的一组,放入二维数组 let resArr = []; let current = 0; for (...原创 2021-08-16 15:40:27 · 2047 阅读 · 0 评论 -
Css盒模型
css盒子模型具备内容(content)、填充(padding)、边框(border)、边界(margin)这些属性我们可以用日常生活中的常见事物——盒子作一个比喻来理解,所以叫它盒子模式。CSS盒子模型就是在网页设计中经常用到的CSS技术所使用的一种思维模型。box-sizing属性box-sizing:content-box是属性默认,即宽度和高度只应用于元素内容 box-sizing:border-box:边框和内边距的值是包含在 width 内的。也就是说,如果你将一个元素..原创 2021-08-13 14:27:40 · 45 阅读 · 0 评论 -
Js实现实现斐波那契数列
1、使用数组方法实现function fib(n) { if (n < 2) return n; let list = [0,1]; for (let i = 1; i < n; i++) { list[i + 1] = list[i] + list[i - 1]; } return list[n];}2、使用递归实现function fib(n) { if (n < 2) return n; function _fib(n, a,.原创 2021-08-13 10:21:31 · 281 阅读 · 0 评论