leetcode同样的代码 网上结果和本地结果不一样_给你代码:leetcode随笔

ba93eb38f7ff317b9aefdeb7ac246d68.png

leetcode随笔

1281. 整数的各位积和之差

给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。

example 1:

输入:n = 234

输出:15

解释:

各位数之积 = 2 * 3 * 4 = 24

各位数之和 = 2 + 3 + 4 = 9

结果 = 24 - 9 = 15

来源:力扣(LeetCode)

这题非常简单。只要转换一下字符串就可以做。无非就是遍历一遍进行累加还有累乘。

/** * @param {number} n * @return {number} */var subtractProductAndSum = function(n) {    const  N = String(n);    let sum = 0;    let reduce = 1;    for (let i = 0; i 

1287. 有序数组中出现次数超过25%的元素

给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%。

请你找到并返回这个整数

example 1 :

输入:arr = [1,2,2,6,6,6,6,7,10]输出:6

来源:力扣(LeetCode)

这题也不难。因为他给的数据是排序过的,所以只要判断上一个出现的元素和当前元素是否相等就可以了,当超过长度的1/4跳出循环就可以了,当上一个元素和当前元素不相等并且循环还没跳出,把计数器还原为1从头开始计时。值得注意的是,不要忘了只有一个元素这个情况。

/** * @param {number[]} arr * @return {number} */var findSpecialInteger = function(arr) {    let last = arr[0], count = 1;    if (arr.length === 1) {        return last;    }    for (let i = 1; i  arr.length/4) {                return arr[i]            }        } else {            count = 1;        }        last = arr[i];    }    };

小程序组件Behavior属性覆盖举例

根据微信官方文档,字段覆盖是有一定规则的。

根据官方文档如果是proerties属性或者方法,那么组件之中的会覆盖Behavior中的,Bahavior自身中的则是后面的覆盖前面的。

而如果是数据data,目标是对象是会被合并,其他类型就会相互覆盖。

好了看到这,我就郁闷了,这所谓的相互覆盖是什么意思?

我就举个例子吧

//如下有一个Behaviormodule.exports = Behavior({    properties: {          abc: {      type: Array,      value: [1]    }  },  data: {        cba: ['ch'],    cbaO: { a : 1 },  }})//如下有个组件应用了这个BehaviorComponent({  behaviors: [...],  /**   * 组件的初始数据   */  data: {       cba: { y: 2 }, //  测试  ['ch2'], 1, '1312'    cbaO: { b: 1 }  },  attached: function () {    //打印变量  }})

可以看出:组件cbaO和behavior cbaO是会被合并,就是类似Object.assign。嗯,表现正常。

而cba则会变成 behavior里面的东西。如果组件里面的 cba变成['ch2'],则又会变成组件里的东西,我如果换成字符串或者数字,依旧是组件里的data覆盖behavior里面的data。我又测试了如果Behavior里面的data是对象的情况,情况也一样。

得出结论:所谓的相互覆盖,就是有一个如果是对象,则会被另一个代替掉。如果2个都不是对象,那么按组件的来。

我后来又新建一个组件也应用了这个Behavior,发现如果组件的data字段里有一个对象也叫cbaO,那么他们会共享这个属性,也就是说即使这样

cbaO: {}

像这给出一个空对象,他打印的就是之前那个组件一样的cbaO,可以说变量被污染了,当然这个对象里面如果有同名的键名则会优先本组件。

这应该是微信方面的bug,从他们的设计角度,组件里的behavior是和组件里的data共享的。但是不同组件实例引用同一个behavior,bahavior里面的data是不能在几个不同的组件之间共享的。


给你代码往期回顾:

暴走状态!小程序用户UnionID的获取及登录状态维护——给你代码

给你代码:leetcode题目加小技巧

给你代码:小程序内容滚动与导航栏自动高亮联动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值