随笔分类 -  97-01. 算法

摘要:实现一个方法 flat(obj) 将下面对象做扁平化处理,输出如下 let obj = { a: { b: 1, c: 2, d: { e: 5 } }, b: [1, 3, { a: 2, b: 3 }], c: 3 } /* { a.b: 1 a.c: 2 a.d.e: 5 b.0: 1 b.1 阅读全文
posted @ 2022-04-11 08:02 真的想不出来 阅读(482) 评论(0) 推荐(0)
摘要:柯理化函数编程思想: 函数柯里化(function currying)又称部分求值。一个currying的函数首先会接受一些参数,接受了这些参数后,该函数并不会立即求值,而是继续返回另外一个函数,刚才传入的参数在函数形成的闭包里被保存起来。待到函数真正需要求值的时候,之前传入的参数都会被一次性用于求 阅读全文
posted @ 2020-06-21 23:16 真的想不出来 阅读(297) 评论(0) 推荐(0)
摘要:比如:求,在1~100之间获取即是3也是5的倍数(也就是15的倍数)的和 1.循环 let total = 0; for (let i = 1; i <= 100; i++) { if (i % 15 0) { total += i; } } console.log(total);//=>315 2 阅读全文
posted @ 2020-06-21 23:04 真的想不出来 阅读(734) 评论(0) 推荐(0)
摘要:const arr = [1,2,3,4,5,6] //const max = Math.max(...arr) //可以用扩展运算符,也可以利用apply的特性 const max = Math.max.apply(null, arr)//Math.min 最小值 console.log(max) 阅读全文
posted @ 2020-06-21 22:59 真的想不出来 阅读(147) 评论(0) 推荐(0)
摘要:1.转成字符串,利用正则的方法 let ary = [1, [2, [3, [4, 5]]], [6, 7, [8, 9, [11, 12]], 10]]; //=>[1,2,3,4,5,6] let str = JSON.stringify(ary); //=>第一种处理 // console.l 阅读全文
posted @ 2020-06-21 22:57 真的想不出来 阅读(340) 评论(0) 推荐(0)
摘要:function sum() { let num = 0; for (let i = 0; i < arguments.length; i++) { //注意:typeof(NaN) => 'number',但是 (NaN NaN) => false if (typeof (arguments[i] 阅读全文
posted @ 2020-06-21 21:57 真的想不出来 阅读(251) 评论(0) 推荐(0)
摘要:1.键值对法 (我最喜欢,简单易懂) Array.prototype._RepeatMost = function () { let _this = [...this]; const obj = {}; let maxTerm = 1; let key = null; _this.forEach(( 阅读全文
posted @ 2020-06-21 21:42 真的想不出来 阅读(168) 评论(0) 推荐(0)
摘要:Set去重( sort() 是排序, 不要搞混了) let ary = [1, 12, 3, 24, 1, 3, 2, 8, 3]; let p = [...new Set(ary)] console.log(p) 数组去重(封装方法,挂在原型上,方法不改变原有数组) 1.判断插入 (我最喜欢,简单 阅读全文
posted @ 2020-06-15 14:57 真的想不出来 阅读(305) 评论(0) 推荐(0)
摘要:先准备一个数组: let ary = []; for (let i = 100; i > 0; i--) { ary.push(Math.floor(Math.random() * 100)) } console.log(ary.length) 下面介绍各种排序的思想和代码。 sort排序: 在 数 阅读全文
posted @ 2020-06-15 14:25 真的想不出来 阅读(179) 评论(0) 推荐(0)