11.16代办一:【敏感词判断】

代办描述:

  一堆字符串组成的数组,给你一个字符串,让你去查找这个字符串是否在这个数组当中?

关键考点:

  数组匹配,看一个数组中有没有这个字符串。

解决思路:

  遍历数组,拿这个字符串去和数组的项一一比对。

解决方案s:

  方案一:Array.indexOf('关键字');

  做法:利用这个方法,将关键字传入进去,如果在数组中查到,就会返回这个关键字在数组中的下标,如果找不到就会返回 -1(思考,为什么不是null或者undefined?)。

  而下标最小为0,所以只要判断indexOf()的返回值是否大于0即可判断此关键字是否是敏感词。

  知识点:数组的indexOf()方法(见参考2)

  indexOf(),(切记这个“O”大写),

  在字符串使用的时候,括号里的关键词可以隐式转换,

  在数组使用的时候,使用全等(===)符号判断。

  第二个参数可选,表示要开始查找的下标位置。数组中表示开始查找的索引位置。

  优缺点及可行性分析:

  缺点1.
  输入【敏感词库】中一摸一样的关键字确实可以屏蔽,但是我稍稍改动敏感词,加一个数字或其他的字,又跳过了屏蔽。这就很尴尬了。。
  比如“数组”这俩字是敏感词,返回下标。但是我输入“数组2”就不算敏感词了,返回的是-1。显然这种判断是不行的。
  这是因为这个方法不会在数组的每一项中再执行indexOf()进行二次匹配。
  缺点2.
  另外的,加入我的【敏感词库】中又数字2是关键字,但当我输入字符串2进行匹配时也是查不到的。这是因为indexOf使用严格相等进行判断。
  缺点3.
  低版本浏览器不支持。。

  方案二:

  上边在解决的时候,一句话点醒了我,说直接用indexOf(“关键字”)去数组中找,他不会做二次判断,但是拿着一个关键字去字符串中找,他就能匹配:

  

  这就解决了在一段文字中找到个别关键字的问题了。

  所以最后将思路整理成代码:

 function filter(value) {
//遍历敏感词数组filter.data
let len = filter.data.length;
for (var i = 0; i < len; i++) {
//判断内容中是否包括敏感词
if (value.indexOf(filter.data[i]) != -1) {
return value;//value为传入的input的value值,如果这个值是敏感词,直接返回这个敏感词,以备后用。
}
}
//如果不是敏感词,默认函数不返回值(即undefined),最后判断函数执行的返回值即可。
}

  这里用了for循环,也可以forEach遍历数组。个人喜好和追求吧。

  优缺点及可行性分析:

  解决问题的代码就是好代码。可能觉得多了一层for循环,但是indexOf内部应该也是要遍历数组吧。

引申:

搜索功能:

比如我输入一个关键字 "test",返回所有和test有关的信息。就像百度搜索那样的功能。怎么做?

参考:

[1]:网站敏感词过滤的实现(附敏感词库)【跳转

[2]:简单谈谈JS数组中的indexOf方法【跳转

11.17代办二:【图片206是什么意思?】

代办描述:

  如题

关键考点:

  http请求状态码

解决思路:

  百度前我敢肯定的是,2xx开头的肯定不是失败

答案:

  [1]多线程下载的状态码、

 

[2]HTTP 2xx范围内的状态码表明了:"客户端发送的请求已经被服务器接受并且被成功处理了".

HTTP/1.1 200  OK是HTTP请求成功后的标准响应,

HTTP/1.1 206  状态码表示的是:"客户端通过发送范围请求头Range抓取到了资源的部分数据".这种请求通常用来:

  1. 学习http头和状态.
  2. 解决网路问题.
  3. 解决大文件下载问题.
  4. 解决CDN和原始HTTP服务器问题.
  5. 使用工具例如lftp,wget,telnet测试断电续传.
  6. 测试将一个大文件分割成多个部分同时下载.

引申:

其他状态码的意思呢?

http头部信息都有啥并表示啥呢?

这里找到一个很不错的网站,部分内容见截图。

http状态码说明:

header头部信息说明:

详细内容请跳转至该网站:http头部信息查询

参考:

[1]:HTTP状态码206跳转

[2]:[译]实践HTTP206状态:部分内容和范围请求【跳转

11.18代办三:【数字操作小技巧 - 取数字对应位数上的值】

代办描述:

  数字34,请拿出个位数的数字。

  数字235,请拿出百位数的数字、

  数字293,请拿出十位数的数字、

  。。。

  类似这样的题。

关键考点:

  运算符 “/”、“%”的灵活应用

  parseInt的作用

解决思路: 

parseInt(num/10)  

这样可以拿到num变量的十位数上的数字!!

parseInt(num/100)

是不是就可以拿到百位数上的数字了!!!

parseInt(num%10) 

就可以拿到两位数数字的个位数的数!!适用于两位数固定的数字,取十位数上的数字时使用。

同样,处以100的也只用于三位数字。

所以,思路转换下,从三位数中拿到中间十位数上的数字,也可以运用这些方法:

parseInt(num/10) %10

例:

2018-11-18  10:10:51

【消灭代办】第1周 - 敏感词判断、图片206、parseInt的更多相关文章

  1. DFA算法之内容敏感词过滤

    DFA 算法是通过提前构造出一个 树状查找结构,之后根据输入在该树状结构中就可以进行非常高效的查找. 设我们有一个敏感词库,词酷中的词汇为:我爱你我爱他我爱她我爱你呀我爱他呀我爱她呀我爱她啊 那么就可 ...

  2. 【消灭代办】第2周 - 数组判断、开发工具、transform:matrix、Grid

    2018.11.19代办一:[数组判断] 代办描述: 怎么判断一个数组是数组呢?其实这个也是一个常考的题目 关键考点: 1.js中对象类型判断的几种方法 2.数组的知识和灵活运用 解决方案s: 篇幅过 ...

  3. js对敏感词的判断

    先贴代码: //定义敏感字符 var forbiddenArray =['xx','<','>','黄色']; //定义函数 function forbiddenStr(str){ // ...

  4. 基于DFA敏感词查询的算法简析

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要对敏感词做一个过滤,首先有几个方案可以选择: a.直 ...

  5. java实现敏感词过滤(DFA算法)

    小Alan在最近的开发中遇到了敏感词过滤,便去网上查阅了很多敏感词过滤的资料,在这里也和大家分享一下自己的理解. 敏感词过滤应该是不用给大家过多的解释吧?讲白了就是你在项目中输入某些字(比如输入xxo ...

  6. 浅析敏感词过滤算法(C++)

    为了提高查找效率,这里将敏感词用树形结构存储,每个节点有一个map成员,其映射关系为一个string对应一个TreeNode. STL::map是按照operator<比较判断元素是否相同,以及 ...

  7. Java实现敏感词过滤

    敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...

  8. php敏感词过滤

    在项目开发中发现有个同事在做敏感词过滤的时候用循环在判断,其实是不用这样做的,用php的数组函数和字符串函数即可实现 function filterNGWords($string) { $badwor ...

  9. 转:鏖战双十一-阿里直播平台面临的技术挑战(webSocket, 敏感词过滤等很不错)

    转自:http://www.infoq.com/cn/articles/alibaba-broadcast-platform-technology-challenges 鏖战双十一-阿里直播平台面临的 ...

随机推荐

  1. Introduction to pinatrace annotate version 2: a look into latches again

    https://fritshoogland.wordpress.com/2017/12/22/introduction-to-pinatrace-annotate-version-2-a-look-i ...

  2. 8-06. 畅通project之局部最小花费问题(35)(最小生成树_Prim)(ZJU_PAT)

    题目链接:http://pat.zju.edu.cn/contests/ds/8-06 某地区经过对城镇交通状况的调查.得到现有城镇间高速道路的统计数据,并提出"畅通project" ...

  3. JSON序列——主从表查询

    JSON序列——主从表查询 客户端代码: procedure TForm1.Button4Click(Sender: TObject); // 主从表 查询 begin var url: TynUrl ...

  4. 如何在本地搭建一个Android应用crashing跟踪系统-ACRA

    https://github.com/bboyfeiyu/android-tech-frontier/tree/master/others/%E5%A6%82%E4%BD%95%E5%9C%A8%E6 ...

  5. .Net Core AES加密解密

    一.AES说明 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替 ...

  6. 独热编码和dummy编码的作用

    参考这篇文章: https://www.cnblogs.com/lianyingteng/p/7792693.html 总结:我们使用one-hot编码时,通常我们的模型不加bias项 或者 加上bi ...

  7. 440P 测试三星ssd840pro 512g

    下面是鲁大师的截屏 安装win8.1 x64颇费周折,计算机->管理模糊,解决方法 现在最大的问题是cpu风扇噪音和温度,看网上确实存在此问题,纯铜风扇+7783硅脂是必须的,下面鲁大师温度截屏 ...

  8. 这些年我在技术路上做过最虚伪愚蠢的事情,就是在CSDN上刷屏赚分

    现在似乎Github成了所谓技术人士的新宠,之前是博客,更早则是论坛. CSDN是众多技术论坛里比较突出的一个,人多高手也多,很多问题都能得到满意的回答. 谁都希望自己卓尔不群,我也不例外,我也想像那 ...

  9. 2D游戏新手引导点光源和类迷雾实现

    一.新手引导须要的遮罩效果 一般做新手引导的时候,会把游戏画面变的半黑,然后须要玩家点击的地方就亮起来.经常使用的做法是採用遮罩来实现,可是仅仅能实现方形的,不能不规则图形.以及是全然挖空.做不到渐变 ...

  10. DUAL PORT RAM应用实例

    作者:桂. 时间:2018-05-14  12:11:00 链接:http://www.cnblogs.com/xingshansi/p/9035522.html 前言 主要是Xilinx 常用模块汇 ...