- 博客(27)
- 收藏
- 关注

原创 利用AI绘画技术,创作属于自己的漫画故事!!
这是和朋友一起用AI做的原创漫画,故事主要是关于学院中的神秘组织“影虫”与象征绝对权威的风纪委员会对抗的故事。在学校的时候我们就一直很喜欢创作故事,但是限制于各种原因,一直没办法把心中所想表达出来。近来开始接触到一些AI技术,让我们觉得是不是能够重新开始自己的创作之路。
2024-12-02 15:06:06
1407

原创 利用AI绘画技术,创作属于自己的漫画故事!
这是和朋友一起用AI做的原创漫画,故事主要是关于学院中的神秘组织“影虫”与象征绝对权威的风纪委员会对抗的故事。在学校的时候我们就一直很喜欢创作故事,但是限制于各种原因,一直没办法把心中所想表达出来。近来开始接触到一些AI技术,让我们觉得是不是能够重新开始自己的创作之路。
2024-12-01 20:06:22
253
原创 JS: 不同数据类型常用的API和方法
search()【返回子串起始位置索引,高级版的indexOf】 match()【匹配】 startsWith() endsWith() 【判头判尾的小工具】、,includes()5.拼接、切除、填充 splice()【先切除、再加入一串】 concat() slice()【有用的切割函数】 copyWith()【内部复制】 fill()【填充】2.子串切割 slice【正统的切割函数,数组和字符都可以通用】 substring() 【同切割函数,完整版切割函数】 substr()【异化版切割函数】
2024-12-05 07:42:38
279
原创 JavaScript创建任意长度的数组
之前在python里曾经用过这种方法,但是感觉循环次数多的话,就得先生成一个很大的数组才能循环,似乎会耗费些内存和性能。还是中规中矩的循环写法好些。使用Array.from方法和伪数组。另,可以使用这样的数组形成一个循环。
2024-12-05 07:41:15
158
原创 JavaScript算法学习之回文对匹配(一)暴力法
总体来说暴力法在少量数据的情况下,是能够解决问题的。例如这样的字符串集,输入:[“bat”,“tab”,“cat”]输出:[[0,1],[1,0]]但是一旦碰到数据量很多的时候,就有可能吃不消了。例如下面这个,好算法的优点,是需要在数据量大的情境下体现出来的。所以下一次,我要对这个问题的解决方法进行优化,通过优化的过程,来学习算法的美妙之处。(未完待续)
2024-12-04 09:28:08
886
原创 JavaScript力扣算法学习之回文对匹配(二)枚举前缀和后缀
接着上篇,在上篇里我使用了暴力法来解决回文匹配的问题,尽管能够通过力扣的提交测试,但是太过粗暴,遇到大数据量的情况下效率不是很高。所以我们肯定是要找一个聪明的办法的。思来想去,自己是想不出思路了,所以直接去看了官方的提供的方法,然后我用程序实现。就当练练编程,顺便学习一下新的思想和思维。
2024-12-04 09:27:38
876
原创 算法学习——用JavaScript实现排序算法
前言想学习一下算法的知识,以经典的排序算法来入门。感觉算法重在思想,用程序实现反而没有那么复杂,按照算法的描述一步步编写、改进即可。用什么语言实现都不重要,本质上都是对算法的具象化。在这里我选择用JavaScript来实现。在这里不对这些算法的过程、复杂度等作介绍,单纯是对算法进行实现,有一篇博客讲的特别好:十大经典排序算法,里面介绍了十大排序算法的思想,还附带了形象的动态图演示,每种算法也有代码实现(博客没说是什么语言,看不出是C、C++还是JAVA。。),最后还对这些算法的特性、复杂度作了比较。
2024-12-04 09:25:23
448
原创 JavaScript编程题:流程控制
但是需要注意下几个判单的顺序,判断number类型可以放在最前面,如果类型错误直接返回false,而不需要进行其它的判断了。因为如果传入参数为空,num的值会为undefined。2.判断“如果参数为空或者不是 Number 类型”,这两种情况,其实都直接用下面的判别式即可。1、如果 num 能同时被 3 和 5 整除,返回字符串 fizzbuzz。有些答案为了判断参数为空,还多写了一些复杂的判断,感觉其实没必要。4、如果参数为空或者不是 Number 类型,返回 false。
2024-12-04 09:24:35
141
原创 JavaScript算法学习之“1”的个数(上)
这是我自己思考的一个思路,写作此文的目的是为了记录自己思考的过程,并从思维的过程探索出一些原理和感悟。我的解法不一定是最优的。官方的解法,是通过归纳数学规律来进行解决的。虽然我也知道其中包含着数学规律,但是正常来说,除非是数学思维特别灵敏,否则按照平时我们程序员平时的思维状态,很难静下心(能力也不一定达得到)去作纯粹数学层面的归纳和推导。所以我不想从数学家的角度,而是单纯从程序开发者的角度去试着分析和推理,期望最后得到好的解决方法。官方解法。
2024-12-03 13:22:36
916
原创 JavaScript算法学习之“1”的个数(下)
但是1~6区间跟11~16区间,包含的"1"字符个数是不一样的,因为11、12、13、14、15、16每一个数字都多出了一个“1”(正是前文得出的规律)。例如n=8时,我们表面上是对1、2、3、4、5、6、7、8这几个数字计算,但是实际是对“12345678”这个数字字符串进行计算,我们的目的,是要计算这个数字字符串里有多少个“1”字符。如果把这一区间的数字字符全部写出来,就会发现,它实际跟1~700这个区间的全部数字字符很类似,不一样的是它每一次都多出了一个千位上的“1”。
2024-12-03 13:22:03
703
原创 JavaScript数组扁平化
第一种方法扁平化方法使用了内置函数flat(),这个方法要把第二种方式和自己写的扁平化函数要更厉害些,它能够传递一个参数,用来指明将第几层的数组“拉平”。比如本例里的 flat(Infinity) ,Infinity表示无论是嵌套的第几层,都给予“拉平”。第二种方式属于思路比较巧妙,把问题的方向转化了一下,变成了数组与字符转换,这种思维也值得学习。但是和自己编写的扁平化函数一样,对于要扁平化的层数无法控制,而是暴力地全部“拉平”。对于flat函数的介绍,可以参考这篇博客。
2024-12-03 10:03:37
175
原创 算法学习-颜色分类
数组长度减去当前索引就是“数组剩余的元素”,如果剩余的元素跟我们扔2的次数(实际就是2的个数)一致,那意思不就是“剩余的元素已经全都是2”了么?我们在将2扔入数组末尾的同时,让 i 先自减少1,然后在循环条件里 i 自增1 ,先减后增,就相互抵消了,相当于i没变,仍然停留在当前索引下的元素进行操作。我们可以注意到,这个问题里的数组元素只有3种:0、1、2(当然,就算是其它的也行,关键是只有“3种”)。首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。
2024-12-03 10:02:52
433
原创 微信小程序踩坑指南(二)<template>和<block>
小程序里的和Vue里的表达的不是一种含义。小程序的template是一种模板,不能用于直接显示代码。它正常情况下不显示,需加载使用。并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性(如wx:if、wx:for)。
2024-12-02 13:53:10
467
原创 叮铃铃~: 一个前端铃声/提示音组件
这是一个使用简单、通用、酷炫的前端铃声🔔组件~可用于铃声、消息提示音、交互音效等诸多场景。将你的音频文件地址传给组件的src参数,即可使用自定义音频源。可以是网络资源或者项目内资源。项目内资源采用的是绝对路径,因为使用相对路径容易在本地构建或者打包过程中出现问题,且作为第三方组件的easy-ring无法从你项目里的相对路径找到音频文件。此时yourAudio变量就是你音频文件的绝对路径,将这个变量传给src参数即可。将一串简谱的字符串传给musicText参数,即可使用自定义简谱音效。
2022-10-23 11:14:17
1002
原创 叮铃铃~:前端铃声组件easy-ring 1.0版本文档
目前组件已经更新到2.0版本,这篇文章是提供给使用旧1.0版本的开发者阅读的。如果你是新尝试easy-ring的开发者,建议可以直接使用2.0版本。😊2.0版本文档:https://juejin.cn/post/7157534443643600903/
2022-10-23 11:12:09
1329
2
原创 【飞书小程序】在任意文件里获取当前页面实例(this)
本文适合对飞书小程序进行过一定开发的读者,目的是提升和优化飞书原生的开发体验。可能有的读者会疑问,获取页面的实例(this)有什么用。这里简单介绍一下背景。在开发飞书小程序的时候,业务逻辑可能很复杂,我们想要把很重的代码进行拆分,封装成不同的模块。这样逻辑会更清晰,代码可读性也会更好,并且更易于维护。这时候,少不了需要在模块里获取页面Page实例,从而进行一些操作。比如最基础的,在模块js文件里对页面的data属性进行读取和改值,即,在模块文件里使用飞书提供的this.setData方法改值、this.da
2022-06-12 19:55:26
1096
原创 【飞书小程序】在任何模块里使用this.setData和this.data
在开发飞书小程序的时候,业务逻辑可能很复杂,我们想要把很重的代码进行拆分,封装成不同的模块。这样逻辑会更清晰,代码可读性也会更好,并且更易于维护。但是问题来了,小程序页面的很多逻辑可能都涉及到对data的读取和更改。如果把它们拆分到模块里,就我们需要在模块中使用this.setData去改变页面的data,或者使用this.data去直接读取data值。但是尝试后可以发现,在模块里输出一个函数,函数里是无法正常调用this.setData或者this.data的,这两个属性为undefined。那么该如何
2022-06-05 15:47:00
590
原创 叮铃铃~: 一个Vue铃声/提示音组件
背景/前言之前的一个功能需求,需要在页面接收消息,一旦有了新消息之后,需要用铃声进行提醒。因为没有找到类似的比较便捷的组件,所以就自己写了一个。然后想着能不能尝试下做成一个公共的组件,发布出去让其他开发者也用用?于是就试着写了一个项目(项目地址在最后),发布成了npm包。虽然组件本身的开发很简单,但是从构建npm包到发布的整个流程,遇到的坑还是很多的,涉及到了:如何将一个Vue组件构建成可以直接引用的包如何将这个组件写成类似插件的形式,让使用者能够直接全局使用如何更改vue-cli配置,使得其
2021-12-26 15:52:54
3425
20
原创 算法学习(动态规划)- 数塔问题
前言之前碰到了扔鸡蛋问题(给你2个鸡蛋,在100层楼上扔,要求想出一个好的策略,去测出哪一层楼开始鸡蛋就会碎掉),一直摸不着头脑。后来才知道可以使用“动态规划”这种思想(或者叫算法范式)去解决这个问题。但是看了一些鸡蛋问题和动态规划的文章,依然只是流于形式,并不能理解其中的精髓。想想或许是鸡蛋问题对我现在而言难了一些,所以只好找了一些其它的动态规划问题,从简单入手,先去理解“动态规划”的思想精髓,再反过来去思考“鸡蛋问题”。其中一个经典问题是01背包问题,这是我之前一直想搞懂的一个问题。看了一篇文章,
2020-11-28 17:58:21
12244
5
原创 Vue + qiankun框架 样式混乱问题的解决办法
前言问题与现象子应用与父应用不断切换的过程中,子应用内的样式突然乱掉。实际上是子应用加载的<style>标签少了,导致遗失了样式。解决1)第一种修复函数/* main.js */// 定义styleCount用于记录<style>标签数,styleList用于保存<style>节点对象let styleCount = 0, styleList = []// 定义一个修复函数function fixStyleBug() { let qiankunSty
2020-11-20 18:34:51
8689
2
原创 记一次vue-cli3下filemanager-webpack-plugin的报错和解决
附上一篇filemanager-webpack-plugin插件的使用方法:vue-cli@3.0 直接打包成zip压缩文件前言因为对之前项目进行再次开发时,遇到了太多因维护引起的问题(满满的心智负担,导致San值严重下降。。( ′Д`))。所以想尝试一下,重新git clone一次某vue项目,想从二次开发者的视角去窥探,看流程能不能顺利。果不其然,出了问题。正文项目是使用Vue-cli3建立。之前本地的旧项目代码一直能够正常工作,但是重新clone一次之后,却报了错。把项目代码重新“git
2020-09-06 21:01:30
4524
3
原创 JavaScript判断是否包含中文字符(汉字、中文标点)
网上资料找来找去,一堆的错误。干脆自己结合零散的信息写一个。function checkChinese (str) { var reg = new RegExp("([\u4E00-\u9FFF]|[\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b\uff01])+","g"); return reg.test(str);}其中:[\u4E00-\u9FFF] 用于判断汉字,[\u30
2020-07-16 11:36:48
3586
原创 JavaScript编程题:移除数组中的元素
问题题目地址:移除数组元素题目描述移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回示例:输入:[1, 2, 2, 3, 4, 2, 2], 2输出:[1, 3, 4]实现function removeWithoutCopy(arr, item) { while (1) { if (arr.includes(item)) { arr.splice(arr.indexOf(item
2020-06-19 12:21:22
272
原创 JavaScript编程题:模块
问题题目地址:模块题目描述完成函数 createModule,调用之后满足如下要求:1、返回一个对象2、对象的 greeting 属性值等于 str1, name 属性值等于 str23、对象存在一个 sayIt 方法,该方法返回的字符串为 greeting属性值 + ', ’ + name属性值实现方法1:function createModule(str1, str2) { let _Class = function(){ this.greeting
2020-06-19 12:11:41
310
原创 JavaScript编程题:使用闭包
问题题目地址:使用闭包题目描述实现函数 makeClosures,调用之后满足如下条件:1、返回一个函数数组 result,长度与 arr 相同2、运行 result 中第 i 个函数,即 resulti,结果与 fn(arr[i]) 相同示例输入:[1, 2, 3], function (x) {return x * x;}输出:4实现function makeClosures(arr, fn) { let result = []; for (let
2020-06-19 11:41:23
217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人