大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

微信支付JSAPI,实测!终极方案

} 至此,所有的签名应经完成,控制器使用unifiedorder()进行参数获取。 前端 这里开始使用jsapi做支付动作 WeixinJSBridge.invoke( "getBrandWCPayRequest", { appId: res.appid, //公众号名称,由商户传入 timeStamp: res.timeStamp, //时间戳,自1970年以来的秒数 nonceStr: res.nonce_str, //随机串 package: res.package, signType: res.signType, //微信签名方式: paySign: res.sign //微信签名 }, function(res) { alert(JSON.stringify(res));

ES6几个好用的数组操作方法

ES6几个好用的数组操作方法 Array.from() :将json数组格式转换成数组 // 这是json数组的格式,注意: // key 必须是数字 // json 的结尾必须写明 json 的长度 let json = { '0' : '123456', '1' : '123456', '2' : '123456', length:3 } // 将json数组转换成数组的格式 let arr = Array.from(json) console.log(arr) find() 示例方法,用于查找数组内的某个元素 let arr = ['liu','yuan','wai']; let list = arr.entries(); console.log(list.next().

vue使用watch监听拿到props的传值

vue使用watch监听拿到props的传值 export default { data() { return { floorData0: {}, floorData1: {}, floorData2: {}, } }, props:['floorData'], watch:{ floorData:val = { console.log(this.floorData);在floorData传值成功的前提下,有时候会出现直接在 watch 里面通过 this.floorData 是无法拿到的,总是显示 undefined。然后需要通过 newVal和oldVal这么处理,才能拿到 floorData 的值: watch:{ floorData:(newVal,oldVal) = { console.log(newVal);

vue中for循环的class绑定事件

vue中for循环的class绑定事件 {{item.MALL_CATEGORY_NAME}} data() { return { categoryIndex : 0, } }, methods: { clickCategory(index){ this.categoryIndex = index; } }

Angular4 不同页面中进行通信

Angular4 不同页面中进行通信 这里用的还是订阅者模式 深入理解Angular订阅者模式 我在项目当中用的是那个subject,在A页面操作成功发生一个通知到B页面 // rest.service.ts send(message: any) { this.subject.next(message); } // A页面发送消息 left.component.ts handleRoute(name) { this.router.navigate(['/' + name],{queryParams:{temp:this.temp}}); let title = queryParams.title; this.restService.send('who are you ?

数组扁平化

数组扁平化 利用apply特性 let arr = [[1,2],3,[4,5],[6,7],8] function flat1(arr){ return [].arr) } console.log(flat1(arr)) //[1, 2, 3, 4, 5, 6, 7, 8] PS:上述方法只能作用于二维数组,当出现多维数组时无法解决问题 多维数组解决方法 方法一: let arr = [1, 2, [3, 4, [5, 6], 7], 8, 9, [1, 2]] function flat(arr) { let arr1 = [] function arrPush(arr){ let len = arr.length for(let i=0;

JavaScript:(a == 1 && a == 2 && a

JavaScript:(a == 1 a == 2 a 这是今天在一篇文章看到的一道题,问题是: 能否让 (a == 1 a == 2 a == 3)这个表达式输出为true 答案是:可以 Code: const a = { num: 0

为什么JS中eval处理JSON数据要加括号

为什么要加括号? 加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的: alert(eval("{}");

python工作日常:数据库链接 方法封装

= "all": return self.__cursor.fetchone() return self.__cursor.fetchall() def postData(self, sql): try: self.__cursor.execute(sql) self.conn.commit() except Exception as e: self.conn.rollback() def close(self): self.conn.close() class ToExecute(object): def __init__(self, db1, db2): self.db1 = UseDB(db1) self.db2 = UseDB(db2) def xxx(self): pass to = ToExecute(db1='',db2='')

每天一点算法-桶排序 (Day2)

//用于保存结果 //待排序数据依次放入桶,这里遍历n次 arr.forEach(function(item){ //一个桶可以装多个数,所以用数组装 if(buckets[item]) buckets[item].push(item); //将桶里从头到尾连起来输出,这里遍历n次 buckets.forEach(function(item){ if(item) result = result.concat(item); }) return result; } var arr = [77, 6, 37, 96, 34, 6, 14]; console.log(sort(arr));

每天一点算法-冒泡排序 (Day3)

var len = arr.length - 1; i [6, 6, 14, 34, 37, 77, 96] 时间复杂度 可以看到运遍历次数为:(n-1) + (n-2) + (n-3) + . + 1 = (n^2 - n)/2, 按照大O阶推导方法得时间复杂度为 O(n^2) 感谢阅读!欢迎关注!持续更新中..

每天一点算法-直接插入排序 (Day5)

for(let i = 1;[6, 6, 14, 34, 37, 77, 96] 时间复杂度 遍历次数的计算与冒泡排序类似:n-1 + n-2 + … + 2 + 1 = n * (n-1) / 2 = 0.5 * n ^ 2 - 0.5 * n,所以时间复杂度为O(n^2)。 感谢阅读!欢迎关注!持续更新中..

每天一点算法-希尔排序 (Day6)

gap = Math.floor(gap/5)) {     for (var i = gap; j-=gap) {         arr[j+gap] = arr[j];       }       arr[j+gap] = temp;     }   }   return arr; } sort([77, 6, 37, 96, 34, 6, 14]); // = [6, 6, 14, 34, 37, 77, 96] 时间复杂度 时间复杂度为O(n^1.3)。 感谢阅读!欢迎关注!持续更新中..

electron-vue,无法改变vuex状态

electron-vue,无法改变vuex状态 一、问题描述 在electron-vue中使用vuex,调用this.$store.dispatch("changeLogin"); console.log(this.$store); console.log(this.$store.getters.isLogin); 输出结果 isLogin初始是false,调用this.$store.dispatch("changeLogin");/modules' Vue.use(Vuex) export default new Vuex.Store({ modules, plugins: [ createPersistedState(), // 注释这个插件的调用 //createSharedMutations() ], strict: process.env.NODE_ENV !

剑指offer(十二)数值的整数次方

/** * @Auther: 张梦楠 * @Date: 2018/7/30 09:22 * 简书:https://www.jianshu.com/u/d611be10d1a6 * 码云:https://gitee.com/zhangqiye * @Description: */ public class Offer12 { public static void main(String[] args) { double power = new Offer12(). System.out.println(power); } public double Power(double base, int exponent) { return Math.pow(base,exponent);

Kotlin的枚举

fun sayHello() { println(hello) } //3、compaion(伴生对象) 静态方法,一个类对应一个半生对象,一个半生对象也只对应一个类; companion object { fun parse(name:String):Lang { return valueOf(name.toUpperCase()) } } } //4、枚举的扩展方法 fun Lang.sayBye(){ var bye = when(this){ Lang.ENGLISH - "bye" Lang.CHINESE - "再见" } println(bye) } fun main(args:Array ) { if (args.isEmpty()) return val lang = Lang.parse(args[0]) lang.sayHello() lang.sayBye() }

类和属性

类和属性 创建 首先我们先回忆一下Java中如何创建实体类,我们创建一个学生类,其中有两个私有属性,姓名name和年龄age,并且我们为其提供构造器和访问器,我们通过构造方法来创建实体类,通过getter和setter方法来进行属性的访问和修改,同时可以在setter方法里面做一些额外的逻辑,比如对数据的验证. public Student(String name, int age) { this.name = name; System.out.println(student.getName());

函数与变量

" # java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!" 程序(老七认为你是有Java基础的哦) 相比而言,Kotlin更为简洁,接下来我就为大家解释一下这段代码: 关键字fun 用来声明一个函数,后接函数名. 参数的类型写再参数名的后面 如 args: Array 前面为参数,冒号后面为参数类型. main 代表函数名为main,且为入口函数. var(variable) : 可变引用.

Kotlin 函数编程详解

Kotlin 函数编程详解 函数 Functions.gif 函数声明 Functions in Kotlin are declared using the fun keyword: fun double(x: Int): Int { return 2 * x } 调用函数 Calling functions uses the traditional approach: val result = double(2) Calling member functions uses the dot notation: Sample().foo() // create instance of class Sample and call foo 参数 Function parameters are defined using Pascal notation, i.e. name: type. Unit is a type with only one value - Unit.