起风了

“路海长 青夜旷 越过群山追斜阳”

把数组排成最小的数

把数组排成最小的数缩略图
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路 // 若 a+b<b+a ; a排在在前的规则排序。 // 如[2, 21], 因为 212 < 221 所以排序后为[21, 2] function PrintMinNumb...

数组中重复的数字

在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 function duplicate(numbers, duplication) {...

数组中只出现一次的数字

一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。 function FindNumsAppearOnce(array) { // return list, 比如[a,b],其中ab是出现一次的两个数字 if (array.length === 0) return false let map = new Map() for (let i = 0; i < array.l...

装饰者模式

摘自《JavaScript设计模式与开发实践》 装饰者模式能够在不改变对象自身的基础上,在程序运行期间给对象动态地添加职责。跟继承相比,装饰者是一种更轻便灵活的做法,这是一种“即用即付”的方式,比如天冷了就多穿一件外套,需要飞行时就在头上插一支竹蜻蜓,遇到一堆食尸鬼时就点开 AOE(范围攻击)技能。 co...

vue通信、传值的多种方式

通过路由带参数进行传值 两个组件 A和B,A组件通过query把orderId传递给B组件(触发事件可以是点击事件、钩子函数等)。 this.$router.push({ path: '/conponentsB', query: { orderId: 123 } }) // 跳转到B 在B组件中获取A组件传递过来的参数。 this.$route.query.orderId 父子组件之间的传值 父组件往子组件...

构建乘积数组

给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1]。不能使用除法。 function multiply(array) { let B = [] let change = false for (let i = 0; i < array.length; i++) { B[i] = 1 for (let j = 0; j < array.leng...

算法知识(递归、动态规划、贪心算法)

算法知识(递归、动态规划、贪心算法)缩略图
摘自《javascript数据结构与算法第二版》 斐波那契数列 1 和 2 的斐波那契数是 1; n(n>2)的斐波那契数是 (n - 1) 的斐波那契数加上 (n - 2) 的斐波那契数。 递归版 function fibonacci(num) { if(num === 1 || num === 2) { return 1 } return fibonacci(num - 1) + fibonacci(num - 2)} 非递归...

《javaScript正则表达式迷你书》(一)

《javaScript正则表达式迷你书》(一)缩略图
正则表达式字符匹配攻略 正则表达式是匹配模式,要么匹配字符,要么匹配位置。 两种模糊匹配 如果正则只有精确匹配是没多大意义的,比如 /hello/,也只能匹配字符串中的 "hello" 这个子串。 var regex = /hello/;console.log( regex.test("hello") );// => true 正则表达式之所以强大,是因为其能实现模糊...

类 class

摘自《深入理解ES6》 尽管一些JS开发者强烈认为这门语言不需要类,但为处理类而创建的代码库如此之多,导致ES6最终引入了类。 ES5 中的仿类结构 JS在ES5及更早版本中都不存在类。与类最接近的是:创建一个构造器,然后将方法指派到该构造器的原型上。这种方式通常被称为创建一个自定义类型。 function Perso...

vue.js响应式系统的基本原理

vue.js响应式系统的基本原理缩略图
摘自《剖析Vue.js内部运行机制》 Vue.js是一款MVVM框架,数据模型仅仅是普通的JavaScript对象,但是对这些对象进行操作时,却能影响对应视图,它的核心实现就是响应式系统。尽管我们在使用Vue.js 进行开发时不会直接修改响应式系统,但是理解它的实现有助于避开一些常见的坑,也有助于在遇见一些琢磨不透的问...