- 定义 Array.prototype.属性 是不是有bug
- 当前 Bug 的表现(可附上截图) 做了一个阅读器,记录用户阅读过的章节,要求用户凡是看过的章节如果是连续则合并在一起,正序排列,如用户看了 1,2,3,4,5章, 则显示 1-5, 如果用户看了1,3,2,4,5 也显示1-5, 如果用户看了 1,2,3,5,6,7,9,11章,则显示 1-3,5-7,9,11 章, 我的代码如下: //数组去重函数 array_unique: function(arr) { for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { if (arr[i] == arr[j]) { arr.splice(j, 1); j--; } } } return arr; }, let readfoot = [];//定义数组 readfoot.push(page);//此处省略,功能是记录所有页码,这是前提 正式代码如下: readfoot = that.array_unique(readfoot);//去重 readfoot = readfoot.sort(function (a, b) { return a - b; });//排序 let readfoot2 = []; let readfoot_start = readfoot[0];//第一个数字 let readfoot3 = []; let lianxu_flag = false;// 判断目录是否连续 if (readfoot.length > 1) {// 如果读的不只一章 for (var i = 1; i < readfoot.length; i++) { if (readfoot[i] != (readfoot[i - 1] + 1)) {// 判断后一个是否等于前一个值 +1 if (lianxu_flag) {// 如果后一个值等于前一个值 +1 ,那么就是连续的,连续的以数组的形式存 readfoot3.push([readfoot_start, readfoot[i - 1]]); } else { readfoot3.push(readfoot_start);//不连续的存单个的字符 } readfoot_start = readfoot[i]; if (i == readfoot.length - 1) { //如果是最后一个元素,则结束 readfoot3.push(readfoot_start); } lianxu_flag = false; } else {// 如果后一个值等于前一个值 +1 ,那么就是连续的 lianxu_flag = true; if (i == readfoot.length - 1) {//如果是最后一个元素,则结束 readfoot3.push([readfoot_start, readfoot[i]]); } } } } else { readfoot3.push(readfoot_start); // 只有一章则只存一章 } for (let k in readfoot3) { if ((typeof readfoot3[k]).toLowerCase() == 'object') {//如果存的是数组 readfoot2.push(readfoot3[k].join('-')); } else {//如果存的是单个字符 readfoot2.push(readfoot3[k]); } } readfoot2 = readfoot2.join(','); - 预期表现 经过测试, 以上代码适用, 但是,但是会有我搞不懂的bug!! 偶尔, 偶尔会出现这种字符串: 只读第四张,出现 4,function(){for(var e=this.length,a=void 0;e;){var n=[this[a=Math.random()*e-->>>0],this[e]];this[e]=n[0],this[a]=n[1]}return this}, 我只读了第四章,不知道什么意思。 检查后面字符串, 发现是之前定义的一个属性内容:如下 Array.prototype.shuffle = function () { let m = this.length, i; while (m) { i = (Math.random() * m--) >>> 0; [this[m], this[i]] = [this[i], this[m]] } return this; }; 所以我只读了第 4 章, 却出现 4,function(){for(var e=this.length,a=void 0;e;){var n=[this[a=Math.random()*e-->>>0],this[e]];this[e]=n[0],this[a]=n[1]}return this} 是什么意思? 我定义的 Array.prototype.shuffle 这个函数被 当做 我目前这个数组 的值 做为 join 函数的参数传递了????? 这是bug吗?! 怎么解决, 我实在不知道怎么解决。 而且这个不好复现, 我 Array.prototype 这样定义过不只shuffle这一个函数,其他这样定义的函数也曾出现过在console.log()的值里, 怎么解决 ,help help help!!! 求解答 - 复现路径 - 提供一个最简复现 Demo
2019-07-10 - 小程序内置录音时间是10分钟吗?
- 需求的场景描述(希望解决的问题) 现在是2019年了, 请问现在最多也只能录音10分钟吗? - 希望提供的能力 提高 到30分钟
2019-07-08 - 同样的代码,不同的表现,云开发我拿什么相信你
- 当前 Bug 的表现(可附上截图) 同样的代码,环境不同结果不同 - 预期表现 预期表现当然是结果相同啊, 气死我了 - 复现路径 - 提供一个最简复现 Demo [图片] 这是我新建的online环境 [图片]这是原来的测试环境,同样的函数, 同样的配置, 谁能告诉我为什么??
2019-07-04 - 如何切换环境以及原环境内容是否可以复制(或者同步)到新环境
- 需求的场景描述(希望解决的问题) 云开发有两个环境,新建了一个online 环境, 发现noline 什么都没有, 可以直接从测试环境复制云函数以及集合到 online环境吗? 如果不可以的话, 已有的云函数以及集合, 是否都需要重新手动上传和创建? 并且在工具切换环境的时候, 云函数想要同步我本地, 我点了取消, 如果点了确定我本地的函数都会被清空了吗? - 希望提供的能力 环境之间复制云函数以及集合的功能
2019-07-02 - 小程序或者云开发后台如何将gbk文件转码成utf8文件
- 需求的场景描述(希望解决的问题) 用户上传的 txt 文件如果为gbk 格式, 小程序不支持以gbk 形式读, 因此会乱码,于是考虑将 gbk 转码到 utf8, 想法是读出字符串变成utf8 重新写入新文件后上传,可是没有办法用 gbk 形式去读。 云开发上是否有办法将文件进行转码, 如果我不使用云开发, 不管是PHP后台或者java后台, 要处理这个都很简单, 但是云开发要怎么做 - 希望提供的能力 客户端或者云开发提供将gbk 文件转码成 utf8的能力, 或者拥有直接读取 gbk 文件的能力
2019-07-02