1.遍历数组法 最简单的去重方法,实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值是否在数组的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多写一些兼容低版本浏览器代码,源码如下: var arr = [1,3,5,7,9,1,9,5,9,3,5,11,13]; function unique1(array){ var newArr=[];//新建一个新数组 //遍历参数数组array for(var i=0;i<array.length;i
继承上一篇所说的,有了对微信小程序的基础概念后,这边将会示范动手做一个小程序,在动手的过程中我们可以更快的熟悉小程序里面的架构和开发流程。
短链接我们或多或少都使用过,所谓短链接就是根据较长的原链接url生成一段较短的链接,访问短链接可以跳转到对应的原链接,这样做好处在于:1. url更加美观;2. 便于保存和传播;3. 某些网站内容发布有字数限制,短链接可以节约字数。
今天笔者整理了一份自己最近用到的一些小技巧分享给大家,虽然都是基础技术,不过在某些特殊时刻还蛮有用的,不至于加载一堆体积庞大的第三方库,今天笔者用本文归纳一下分享给大家。本篇文章主要包含以下内容:
GitHub: https://github.com/nzbin/CardShow/ Demo: https://nzbin.github.io/CardShow/ 前言 这个小项目(卡片秀)是一个卡片抽奖特效插件,用开源项目这样的词语让我多少有些羞愧,毕竟作为一个涉世未深的小伙子,用项目的标准衡量还有很大差距。不过该案例采用 jQuery 插件方式编写,提供配置参数并且做了浏览器兼容优化,整体而言作为一个小项目也不为过。目前正在持续更新。 当然,博主写这篇文章不是为了炫耀这个 Demo,而是交
理解ES 全称: ECMAScript js语言的规范 我们用的js是它的实现 js的组成 ECMAScript(js基础) 扩展-->浏览器端 BOM DOM 扩展-->服务器端 Node.js ES5 严格模式 运行模式: 正常(混杂)模式与严格模式 应用上严格式: 'strict mode'; 作用: 使得Javascript在更严格的条件下运行 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为 消除代码运行的一些不安全之处,保证代码运行的安全 需要记住的几个变化 声明定
关于 Vue.js 的 v-for , key 的取值,影响过渡动画表现 这个问题是在写 Message 组件出现的,先看代码部分
最近在做需求的时候,有个管理端接口需要在调用的时候传递一个无符号的32位整形文件ID,也就是0 ~ 4294967295之间的数字,每次调用接口这个文件ID不能重复。
这几天一直在更新一些排序啊,去重方面的内容, 是因为这些说是技巧,其实都是JS的基本功, 不管是新人,还是老鸟,都要加强加强再加强。 因为经常有种情况,就是别人写的框架、库, 打开源文件你看不懂, 为什么呢? 就因为你基本功不好,不能理解它的各种方法的综合运用。 那今天我们就一起来学习下JS的去除重复项, 说是一起学习,真的就是一起学习, 我给你们讲, 首先我得自己学会,, 先上代码哈: function isCheckArr(arr){ var newArr = []; for(var i=0;i
生成相邻不重复随机数是之前抽奖插件的遗留问题,在之前的文章中已经简单说过,但没有更好的解决方案。经过一个多月的修改,抽奖插件已经趋于完善,在此分享一下这个问题的解决方法。以下是最初的方法,但是会出现一个单独的全局变量,整体而言稍显多余,不算完美。 // 产生相邻不重复的随机数,n 为随机数个数 var b = 0; function random(n) { var a = Math.floor(Math.random() * n); if (a == b) {
JS中的Map和VBA里的字典Dictionary基本上一样的,主要的功能就是保存一对Key-Value的数据,保证Key不重复。
一直以来,JS 只能使用数组和对象来保存多个数据,缺乏像其他语言那样拥有丰富的集合类型。因此,ES6 新增了两种集合类型 set 和 map,用于在不同的场景中发挥作用。由于文章篇幅的原因,今天先聊聊 set,map 将在下一篇文章再去说。
细细究起来并不复杂,但是一开始看的时候,我还是有些蒙圈的。我当时在疑惑一个问题---app.json与project.config.json的作用会不会重复呀?
贪心法,又称贪心算法,贪婪算法,在对问题求解时,总是做出在当前看来最好的选择,期望通过每个阶段的局部最优选择达到全局最优,但结果不一定最优
MapAttack是一款实时的,基于地理位置的游戏,其通过Socket.io,node.js,和Redis实现了其实时性。下面文章对整个游戏及其技术实现进行了描述,推荐给大家。
数组是 JS 最常见的一种数据结构,咱们在开发中也经常用到,在这篇文章中,提供一些小技巧,帮助咱们提高开发效率。
setInterval 方法在创建一个定时器的同时,还会返回一个的定时器的 ID ,该 ID 就代表这个定时
多语言混搭开发工程师,多年 PHP、Python 项目开发经验,曾就职 360、绿盟科技,7年工作经验。擅长于 Web 安全开发、性能优化、分布式应用开发&设计等多方面,51Reboot 金牌讲师。
这首曲子,名为aisatsana,来自电子乐大师Aphex Twin,只有5分多钟。
/问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714。 还可以表示为:100 = 82 + 3546 / 197。 注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。 类似这样的带分数,100 有 11 种表示法。 输入格式 从标准输入读入一个正整数N (N<10001000) 输出格式 程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。 注意:不要求输出每个表示,只统计有多少表示法! 样例输入1 100 样例输出1 11 样例输入2 105 样例输出2 6 */
1000行JS代码,听起来挺多的,但实际上真不算什么,随便一个功能完备、代码健壮的JS应用或是模块,很轻松的就写出1000多行,看这里,我以前写的一个tabel插件,带有CRUD功能、展开、加载、上传
有一个月没有写博文了,最近经历了离职,找工作,疫情导致的工作延期,新入职在临港的分公司,搬家到临港,所以一直延期博文更新,也没有学习新知识的时间。然后新入职的这家公司项目没有做前后端分离,也就是从后端到页面数据绑定都是后端的活,前端框架使用的是Layui前端框架。这种框架之前没有在公司用到过,也没有接触过所以,这里系统的学习一下。
普通的解法,没用用啥js函数,c语言思路,用hash记录下每个子串的字母,如果hash中的已经存在则表示遇到重复字母开始下一个子串查找。使用javascrupt有一个坑就是 if (currentSub[s[i]] === undefined)这句我一开始写成了if (!currentSub[s[i]]),这就有问题了,当currentSub[s[i]]为0时,也就是字符串的第一个字母,会判断为已经存在在hash中,因为js中!0 == true。上面解法的复杂度是O(n平方)。因为会有一个回退记录新子串的hash的过程。高端点的是用动态规划,以后学会了再更新吧hhh
mpvue——美团开源的小程序开发框架,从我11月份提到它,直到如今才姗姗来迟,但自上周在github发布以来,短短几天收获了3600多的Star,可以说是本年度国内上升最快的开源项目也不为过。
最近关于H5和APP的开发中使用到了webSocket,由于web/app有时候会出现网络不稳定或者服务端主动断开,这时候导致消息推送不了的情况,需要客户端进行重连。查阅资料后发现了一个心跳机制,也就是客户端间隔一段时间就向服务器发送一条消息,如果服务器收到消息就回复一条信息过来,如果一定时间内没有回复,则表示已经与服务器断开连接了,这个时候就需要进行重连。
最近用django写了一个后台系统,使用的是验证码方式。但是开发人员抱怨,输入验证太麻烦,还有可能出错,太影响效率了。
viewer.html页面不需要修改。如果需要,则修改viewer.js和pdf.js等引用文件位置
文末将附上组件封装的源码,欢迎大家随时沟通交流。关于项目的打包,我将使用自己基于gulp4搭建的9012教你如何使用gulp4开发项目脚手架。
向 Set 加入值的时候,不会发生类型转换,所以5和"5"是两个不同的值。Set 内部判断两个值是否不同,使用的算法叫做“Same-value-zero equality”,它类似于精确相等运算符(===),主要的区别是NaN等于自身,而精确相等运算符认为NaN不等于自身。
本篇译自:https://medium.com/@abdelmatyne5/uuid-vs-crypto-randomuuid-vs-nanoid
八、把JS和CSS放到外部文件中(有争议,灵活运用)。 写在页面内的情况: 1、值应用与一个页面 2、不经常被访问到 3、脚本个样式都很少
现实的西方程序员世界里,也有与之如出一辙的精神:The Best Code is No Code At All。最好的代码就是根本没代码。
当我们选择项目分类的时候,一个项目下关联多个模块,同时有这两个选项框的时候,需要实现选中一个项目,模块里面自动删除出该项目下的模块,如下图这种
2、如果没有显示指定_id字段隐藏,则默认会显示,显示指定隐藏,如:find({},{"_id":0});
传统的表单提交,在文本框输入内容后,点击按钮,后台处理完毕后,页面刷新,再回头检查是否刷新结果正确。使用Ajax,在点击sunmit按钮后,立刻进行异步处理,并在页面上快速显示了更新后的结果,这里没有整个页面刷新的问题。
上篇我们已经配置好了本地开发服务器,但是配置的相对比较凌乱,一个文件中有些是开发时用到的配置,有些是生成时用到的配置,有些是开发和生成都要用到的配置,所以我们这里把环境分为3个环境
整体思路是利用回溯加去重的方式,在具体递归的过程中类似于一棵决策树,首先定义一个用于递归的函数,分别传递原数组的引用、暂存数组索引的引用、目标数组的引用、递归深度、哈希表对象,如果递归的深度与原数组的长度相同,那么就在暂存数组中使用索引取出原数组的值,将更新变量转换为字符串,因为在Js中对象也是以HashTable进行存储的,便可以直接利用Js对象来实现哈希表,将转换的字符串作为键值放置于哈希表,目的是之后再次出现这个字符串那么就不再放入目标数组以达到去重的目的,如果目前的HashTable还不存在该key,那么就将取得的原数组值作浅拷贝放置于目标数组,接下来是递归方案,在递归过程中已经出现在暂存数组的索引值就不再继续递归,利用回溯法实现一棵决策树,从而实现全排列。
「有研究显示,打字的时候不喜欢在中文和英文之间加空格的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其余三成的人最后只能把遗产留给自己的猫。毕竟爱情跟书写都需要适时地留白。
上半年我为了学习 Nuxt3,从 0 到 1 开发了一个导航网站:Dream Site,目前主要的功能都已完成了,后续有时间再慢慢添加有趣的功能。
3.为Set类增加一个higher(element)方法,该方法返回比传入元素大的元素中最小的一个,并写一段代码来测试该功能。
目录 空格 中英文之间需要增加空格 中文与数字之间需要增加空格 数字与单位之间需要增加空格 全角标点与其他字符之间不加空格 -ms-text-autospace to the rescue
最近在开发过程中,需要用webview控件来展示文章的详情页面,流程是通过请求后台数据,然后用控件加载,而后台返回的文章详情页面是直接网页端使用的,并没有对移动端进行适配,导致webview加载后文章详情展示的图片过大,需要左右移动才能查看完整的图片,这显然给用户的体验很差,这个时候就需要我们移动端进行做适配了。
ESLint于2013年6月份推出,至今4个年头,最新版本v4.8.0。它是目前主流的用于Javascript和JSX代码规范检查的利器,很多大公司比如Airbnb和Google均有一套自己的Java
领取专属 10元无门槛券
手把手带您无忧上云