自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 Diff Two Arrays

题目描述:比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。换言之,返回两个数组的差异。题目分析 :两个数组的差异重新组成的数组,就是第一个数组在第二个数组中不同的项和第二个数组在第一个数组中不同的项的拼接。代码实现:function diff(arr1, arr2) { var newArr = []; newArr = arr1.filter(fu

2017-11-14 22:17:56 309

原创 Sum All Numbers in a Range

下面就到FCC的中级算法题了,希望自己可以一直坚持下去。题目描述:我们会传递给你一个包含两个数字的数组。返回这两个数字和它们之间所有数字的和。最小的数字并非总在最前面。题目分析:这道题实际上是求n个连续自然数的累加和,我想到了两种实现方式 :先得到两个最大数和最小数,实现数字在这个范围内的数组,再用reduce()方法求得所有数字的和。代码如下 :function sumAll(arr) {

2017-11-14 21:58:27 331

原创 凯撒密码

题目描述:凯撒密码Caesar cipher,又叫移位密码。移位密码也就是密码中的字母会按照指定的数量来做移位。一个常见的案例就是ROT13密码,字母会移位13个位置。由’A’ ↔ ‘N’, ‘B’ ↔ ‘O’,以此类推。写一个ROT13函数,实现输入加密字符串,输出解密字符串。所有的字母都是大写,不要转化任何非字母形式的字符(例如:空格,标点符号),遇到这些特殊字符,跳过它们。题目分析:由于所有的

2017-11-11 22:41:44 1328

原创 数组排序并找出元素索引

题目描述:先给数组排序,然后找到指定的值在数组的位置,最后返回位置对应的索引。举例:where([1,2,3,4], 1.5) 应该返回 1。因为1.5插入到数组[1,2,3,4]后变成[1,1.5,2,3,4],而1.5对应的索引值就是1。同理,where([20,3,5], 19) 应该返回 2。因为数组会先排序为 [3,5,20],19插入到数组[3,5,20]后变成[3,5,19,20],而

2017-11-11 22:01:10 3500

原创 摧毁数组

题目描述:实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值。destroyer([1, 2, 3, 1, 2, 3], 2, 3) 应该返回 [1, 1]; destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3) 应该返回 [1, 5, 1];题目分析:我们可以先把待要摧毁的值组成一个新的数组,这样就可以比较第一个数组和新数组的元素,如

2017-11-11 21:47:30 1032

原创 过滤数组假值

题目描述:删除数组中的所有假值。在JavaScript中,假值有false、null、0、”“、undefined 和 NaN。还是先上代码:function bouncer(arr) { return arr.filter(Boolean);}bouncer([7, "ate", "", false, 9]);数组中有个filter()方法,它创建一个新数组, 包含通过所提供函数实现的测试

2017-11-10 16:47:03 1591

原创 比较字符串

题目描述:如果数组第一个字符串元素包含了第二个字符串元素的所有字符,函数返回true。举例,[“hello”, “Hello”]应该返回true,因为在忽略大小写的情况下,第二个字符串的所有字符都可以在第一个字符串找到。[“hello”, “hey”]应该返回false,因为字符串”hello”并不包含字符”y”。[“Alien”, “line”]应该返回true,因为”line”中所有字符都可以在

2017-11-10 15:56:51 389

原创 旋转数组的最小数字

题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。刚开始只想到了从头到尾遍历一番,从中找出最小数,这种思路的时间复杂度显然是O(n),显然是不现实的。那怎么办呢

2017-10-09 23:46:00 183

原创 用两个栈实现队列

题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。分析: 一个队列包含了两个栈stack1和stack2,这道题要求我们操作这两个“先进后出”的栈实现一个“先进先出”的队列。假设我们先把一个元素a插入到栈stack1中,这个时候栈stack1里有一个元素a,栈stack2为空。再插入两个元素b和c到栈stack1中,此时stack1中有三个元素,其中

2017-10-08 23:16:48 229

原创 重建二叉树

题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。让我们先回顾一下二叉树遍历的知识点: 前序遍历:根→左→右,根在前,子树在根后且左子树比右子树靠前 中序遍历:左→根→右,根在中,左子树在跟左边,右子树

2017-10-07 23:01:51 184

原创 修改this指向

this一般指向的是当前被调用者,我们在定义函数的时候并不能事先确定this指向谁,但我们可以通过其他方式来改变它的指向。apply()该方法调用一个函数, 其具有一个指定的this值,以及作为一个数组(或类似数组的对象)提供的参数。 语法:fun.apply(thisArg, [argsArray]) - thisArg: 在 fun 函数运行时指定的 this 值。 - argsArray

2017-10-06 16:40:53 516

原创 二维数组中的查找

题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。两种思路: 1. 利用二维数组由上到下,由左到右的规律,首先选取数组中右上角的数字(a[row][col]),如果该数字等于要查找的数字(target),查找过程结束;如果该数字大于要查找的数字,剔除这个数字所在的列,即co

2017-10-06 13:15:28 225

原创 清除浮动方法总结

浮动会使当前标签产生向上浮的效果,同时会影响到前后标签、父级标签的位置及 width height 属性,在网页设计中清除浮动是一种很常见的操作,以下整理了几种清除浮动的方法给父元素设定高度给下一个添加clear属性增加一道墙(空标签)使用after伪元素使用overflow:hidden属性具体方法HTML 默认统一代码:<div id="div1"> <div class="

2017-10-04 13:00:59 234

原创 meta标签整理

所有的浏览器都支持<meta>标签,它提供有关页面的元信息,比如作者、日期和时间、网页描述、关键词、页面刷新等,该标签位于文档的头部,不包含任何内容,它的属性定义了与文档相关联的名称/值对。meta标签的内容设计对于搜索引擎优化来说非常重要,合理利用meta标签的Keywords和Description属性,可以使网站更加贴近用户体验。必须属性content 属性提供了名称/值对中的值。该值可以是任

2017-10-03 10:54:58 231

原创 node mysql搭建个人网站总结

十一假期没事,就花费了两天时间搭建了一个不成熟的个人网站,自己写点心得吧,安抚下自己躁动的心搭建环境Node.js Express MySQL网站介绍先上几张图网站主要包含三个模块:日志,项目简介和个人相册。Express是一个基于 Node.js 平台,快速、开放、极简的 web 开发框架。在网站设计的时候,前台页面使用基本的HTML5、CSS3和原生的JavaScript,实现了响应式页面的

2017-10-03 09:27:41 1070

原创 node 打开中文乱码

Node.js对中文支持不太好,有时侯打开文件会出现乱码。要想正常显示中文,需要注意以下两点:保证.js文件保存为unicode格式,编码格式为“UTF-8”在你的JS文件中的http.ServerResponse对象中的writeHead方法中加入 “charset=utf-8” 语句,定义文件中所使用的字符编码下面是一个简单的示例:var http = require('http');ht

2017-08-14 21:55:08 512

原创 Console 调试小技巧

前言 :通常,我们在编写一个新的JavaScript代码过程中经常会发生错误,可能是语法错误,可能是逻辑错误,如果没有一个调试工具帮助我们的话,相信你怕是头都要炸了。由于JS是执行在浏览器的,所以我们可以直接在浏览器中进行调试。在所有的浏览器中,建议大家使用谷歌浏览器进行调试,体验非常的棒。当然所有的都一样,需要我们打开控制台输出窗口,即 Console面板。Console 调试我主要总结了一些在

2017-08-07 22:40:57 6304

原创 初识 Python

简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。Python的优点是简单、易学、速度快、免费开源、解释性、面向对象、具有可扩展性和丰富的库,代码规范,当然也像任何语言一样存在缺点,单行命令和命令行输出问题,以及相比之下运行速度显得慢。Python 优雅的语法和动态类型,再结合它的解释性

2017-08-06 03:10:28 339

原创 数组常用方法二

今天接着补充一下数组的常用方法,关于数组的操作,还是要多多使用,就能熟练掌握。some() :some() 方法测试数组中的某些元素是否通过由提供的函数实现的测试 ,根据 some 来理解,只要有一项满足就返回 true。它的具体语法如下:arr.some(callback[, thisArg])callback 是用来测试每个元素的函数,它在被调用时会传入三个参数: 1. currentVal

2017-08-05 22:38:06 265

原创 初识node

Node.js是以Google V8 JavaScript引擎为基础的服务器端技术,简单的说就是运行在服务端的JavaScript。它使用了一个事件驱动、非阻塞式 I/O 的模型,轻量又高效。当然,学习node就要先安装node.js,网上的教程有很多。我们要确保本机上node和npm能正常运行。第一个node程序// load http modulevar http = require('htt

2017-08-04 22:43:05 228

原创 Element.classList属性

Element.classList是一个只读属性,它返回元素的类名,作为DOMTokenList对象,该元素用于在元素中添加,移除及切换CSS类。对于jQuery里的hasClass、addClass、removeClass方法我们再熟悉不过了,但我们并不是在每个项目中都会去使用jQuery。在原生js中,classList可以方便的对元素的类名进行增删改查,它的构造器是DOMTokenList,提

2017-08-04 10:51:19 1785

原创 flex 布局

Flex 布局,可以简便,完整,响应式的实现各种页面布局网页布局是CSS中一个重点应用,传统的解决方案是基于盒模型的,它依赖于 标准文档流、浮动布局 和 定位布局。但它在解决一些特殊布局的时候会很不方便,让人很头疼。Flex 布局Flex 是 Flexible Box 的缩写,即弹性布局,任何一个容器(块状元素或行内元素)都可以指定为Flex布局。 设为Flex布局以后,子元素的float、cle

2017-08-04 01:46:43 710

原创 视区相关单位vw, vh

vw,是指CSS中相对长度单位,表示相对视口宽度(Viewport Width),1vw = 1% * 视口宽度 vh,是指CSS中相对长度单位,表示相对视口高度(Viewport Height),1vh = 1% * 视口高度示例代码 :p{ font-size: 15vw;}如果视口的宽度是200mm,那么上述代码中p元素的字号将为30mm,即(15x200)/100,随着视口的变化

2017-08-04 00:21:56 575

原创 初识React

React的核心思想是:封装组件,各个组件维护自己的状态和UI,当状态变更,自动重新渲染整个组件。React 是一个用于构建用户界面的JavaScript库,它起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。React主要用于构建UI,而且性能出众,代码逻辑简单,所以我打算好好研究一下,既满足了自己的好奇心,也提高一下自己的技术水平。在学习

2017-08-03 22:32:59 312

原创 数组的常用方法总结一

JavaScript Array对象用于在单个的变量中存储多个值,它有很多方法,今天就先总结一些经常会用到的。最基本的就是创建数组和访问数组元素: new Array(); new Array(size); new Array(element0, element1, …, elementn); let students = [“Charles”,”Justin]; let first

2017-08-03 00:13:01 454

原创 html中的块状元素和内联元素

大多数 HTML 元素被定义为块级元素或内联元素。块级元素在浏览器显示时,通常会以新行来开始(和结束),可以设置width和height,可以设置margin和padding。 常见的块状元素: h1-h6、p、div、table、form、ul、ol、dl、dt、blockquote、address、caption、hr内联元素在显示时通常不会以新行开始,width和height对它不起作用,竖

2017-07-14 16:26:22 472

原创 HTML标签语义化

html提供了网页文档内容的上下文结构和含义,语义化是一种对文本内容和意义的补充说法。它会告诉我们标签的含义,这行是一个标题,这是一个段落,那是一个链接。总的来说,HTML告诉我们一块内容是什么,而它应该长什么样子是CSS的工作。 HTML语义化可以让页面的内容结构化,便于浏览器解析,便于搜索引擎解析,有益于SEO,便于团队开发和维护。 语义化的HTML结构很简单,掌握HTML各个标签的语义,在

2017-07-14 15:43:16 387

原创 JavaScript数组

Array 对象用于在单个的变量中存储多个值.创建数组的方法如下:let arr = new Array();let arr = new Array(size);let arr = new Array(element0, element1, ..., elementn);let arr = [];let arr = ['apple','banana']通过索引访问数组元素:let it

2017-06-11 16:09:13 427

原创 JavaScript数据类型

JavaScript的数据类型分为两类:原始类型(primitive type)和对象类型(object type)。JavaScript中的原始类型包括数字、字符串和布尔值,还有两个特殊的原始值:null(空)和undefined(未定义)它们通常代表各自特殊类型的唯一的成员。除了这些之外就是对象类型,对象是属性的集合,每个属性都由”名/值对”构成。数组、函数、日期、正则和错误都是对象类型。原始类

2017-06-11 16:06:41 335

原创 querySelector与getElementBy等的区别

获取元素DOM对象有很多种方法,以前一直在用getElementById和getElementsByTagName等,现在对这些方法和querySelector做一个总结. 常见的获取元素的方法有3种,分别是通过元素ID、通过标签名字和通过类名字来获取。 DOM提供了一个名为getElementById的方法,这个方法将返回一个与之对应id属性的节点对象,它是document对象特有的函数,只能

2017-05-06 17:49:14 39672 4

原创 截断数组

最近开始在freeCodeCamp上学习,对JavaScript的算法部分的题目进行记录,强化一下自己的知识点,也方便以后复习。题目描述: 返回一个数组被截断n个元素后还剩余的元素,截断从索引0开始。代码实现:function slasher(arr, howMany) { arr.splice(0,howMany); return arr;}slasher([1, 2, 3], 2);这

2017-04-10 17:47:53 1976 2

原创 Ubuntu下搜狗输入法只有悬浮框不能输入中文

搜狗输入法安装之后一直用的挺好,一次输入法切换过程中不知怎么回事给调出了问题,只有悬浮框但不能输入中文,网上找了好久终于解决了这个问题.检查language support 和Configure Current Input Method配置都正常,也重启了好多次,就是不知道出了什么问题,自己困惑了好长时间.最后解决方法就是删除配置文件,然后重新启动.ubuntu下搜狗输入法的配置文件在 ~/.con

2017-04-05 10:57:49 775

原创 把一个数组按照指定的数组大小分割成若干个数组块

最近开始在freeCodeCamp上学习,对JavaScript的算法部分的题目进行记录,强化一下自己的知识点,也方便以后复习。题目描述: 把一个数组arr按照指定的数组大小size分割成若干个数组块。 例如: chunk([1,2,3,4],2)=[[1,2],[3,4]]; chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]];思路: 该方法实现需要先声明一个

2017-04-04 19:30:43 6907 2

原创 截断一个字符串

最近开始在freeCodeCamp上学习,对JavaScript的算法部分的题目进行记录,强化一下自己的知识点,也方便以后复习。 题目描述: 截断一个字符串!如果字符串的长度比指定的参数num长,则把多余的部分用…来表示。切记,插入到字符串尾部的三个点号也会计入字符串的长度。但是,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。思路: 截取字符串用到了String对象的s

2017-04-04 19:16:50 1289

原创 重复一个指定的字符串 n次

最近开始在freeCodeCamp上学习,对JavaScript的算法部分的题目进行记录,强化一下自己的知识点,也方便以后复习。 题目描述: 重复一个指定的字符串 num次,如果num是一个负数则返回一个空字符串。实现:function repeat(str, num) { var newStr=""; if(num<0){ newStr = ""; }else{ for

2017-04-04 18:59:42 5702

原创 检查一个字符串是否以指定的字符串结尾

最近开始在freeCodeCamp上学习,对JavaScript的算法部分的题目进行记录,强化一下自己的知识点,也方便以后复习。 题目描述: 检查一个字符串(str)是否以指定的字符串(target)结尾。 如果是,返回true, 如果不是,返回false。思路: 该方法的实现主要是用指定的字符串和字符串最后一部分进行比较,用到String对象中的substr()方法或者substring()

2017-04-04 18:49:48 5047

原创 检查一个字符串是否以指定的字符串结尾

最近开始在freeCodeCamp上学习,对JavaScript的算法部分的题目进行记录,强化一下自己的知识点,也方便以后复习。 题目描述: 检查一个字符串(str)是否以指定的字符串(target)结尾。 如果是,返回true, 如果不是,返回false。思路: 该方法的实现主要是用指定的字符串和字符串最后一部分进行比较,用到String对象中的substr()方法或者substring()

2017-04-04 18:49:40 3513

原创 返回数组中的小数组的最大值

最近开始在freeCodeCamp上学习,对JavaScript的算法部分的题目进行记录,强化一下自己的知识点,也方便以后复习。 题目描述: 右边大数组中包含了4个小数组,分别找到每个小数组中的最大值,然后把它们串联起来,形成一个新数组。思路: 用for循环来迭代数组,并通过arr[i]的方式来访问数组的每个元素,利用Math.max()函数将小数组中的最大值追加到要实现的数组当中。funct

2017-04-03 20:17:45 660

原创 字符串的每个单词首字母大写

最近开始在freeCodeCamp上学习,对JavaScript的算法部分的题目进行记录,强化一下自己的知识点,也方便以后复习。 题目描述: 确保字符串的每个单词首字母都大写,其余部分小写。思路:实现很容易,先用String对象的split()方法将字符串分割,然后循环遍历将单词首字母改为大写。function titleCase(str) { var newarr,newarr1=[]

2017-04-03 20:11:25 2057

原创 JavaScript中substr()和substring()的区别

以前一直没注意,上次在做使字符串每个首字母都大写的时候注意到这点,就把它记录下来。String对象中substr() 方法返回一个字符串中从指定位置开始到指定字符数的字符,语法为str.substr(start[, length]) 。 substring() 方法返回的是一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集,语法为str.substring(in

2017-04-03 20:09:16 590

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除