一、交换两个数字的值

  我们交换两个数字的值想到的方法一般就是用一个新的变变量,让他把一个数存起来,然后在交换两个数字的值,看下面这种。

var a = 1,
b = 2;
//交换两个数字的值
var c;
c = a;
a = b;
b = c;

  看下面这段代码,也可以交换两个数字的值,如果这样写你会不会发现特别高大上。

 var a = 1,
b = 2;
a = [b, b = a][0];
这里其实是a = [][0]数组下标为0的那个,然后 b = a; 这样也可以交换两个数字的值了。

二、数组的排序

 1.数组方法中的sort排序方法。

 var a = [9,8,8,6,1,2,4,56];
a.sort(function(a,b){
return a - b;//由小到大排序
})
console.log(a)

  这是数组方法中的sort排序方法,如果return b - a; 就是由大到小排序,其中的原理是什么呢,其实就是冒泡排序法

2.冒泡排序法 (由小到大排列)

var a = [9,8,7,6,5,4,3,2,1];
for(var i=0; i<a.length-1; i++){
for(var j=0; j<a.length-i; j++){
if(a[j]>a[j+1])
a[j] = [a[j+1], a[j+1]=a[j]][0];
}
}
console.log(a)

 3.选择升序法(由小到大排列)

 var a = [9,8,7,5,6,4,1,3,1];
for(var i=0; i<a.length-1; i++){
for(var j=i+1; j<a.length; j++){
if(a[i]>a[j])
a[i] = [a[j],a[j]=a[i]][0];
}
}
console.log(a)

三、for in 循环 遍历json

  我学习for in循环的时候是在学json的时候学到的,看下面这段代码。

  1.for in循环遍历出json里面所有的属性名

 	var json = {
a : 1,
b : 2,
nam : 'Z',
clas2 : '我们的'
}
for(var i in json){
console.log(i)
}

  2.我们打印出来的i会是json里面所有的属性名,那么他是怎么循环的呢,我当时一直不太清楚,你尝试一下下面这段代码看一下效果。

	var json = {
a : 1,
b : 2,
nam : 'Z',
clas2 : '我们的'
}
for(var i in json);
console.log(i)

  我们在for in 循环的这一行给了一个分号结束语句,然后打印出来i我们会发现他是class2,现在你大概明白了吧,每一次循环这个i代表的就是json本次循环得到的属性名,他不是代表的一个数组,而是代表一个值。

  3.for in 循环遍历出json里面所有的值

	var json = {
a : 1,
b : 2,
nam : 'Z',
clas2 : '我们的'
}
for(var i in json){
console.log(json[i])
}

 四、for in循环遍历数组

var a = [1,2,5,6,777,6,21];
for(var i in a){
  console.log(i) //这里打印出来的是所有的下标
  console.log(a[i]) //这里打印出来的是数组里面所有的值
}

 五、遍历json属性到数组

1.这个里面用到的是每一次用数组的长度来代表他的下标,然后将json里面的属性名遍历到a数组中。

var json = {
a : 1,
b : 111,
nam : 'z',
clas2 : 1
}
var a = [];
for(a[a.length] in json);
console.log(a)

 2.遍历json的属性的值到数组中

var json = {
a : 1,
b : 111,
nam : 'z',
clas2 : 1
}
var a = [];
for(var i in json){
a[a.length] = json[i];
}
console.log(a)

  

六、判断浏览器是不是IE678

if(!-[1,]){
alert('这是ie678');
}

 说出来你可能不信,

原理

1.    请你试一下  alert([1,2,].length)浏览器中弹窗的数字是多少

  谷歌 火狐 一些的弹窗都是2,所以后面的那个逗号浏览器判断是不算的

  但是在IE6 7 8 中弹窗出的数字是 3 ,

  所以Number( [1,])这个东西在谷歌,火狐的眼中就是1,但是在IE678心中他就是NaN

2.  前面的 - 号  隐式转换为Number型

3 取反 判断内的值为true,所以可以在这里面判断成。

  如果你看到我的文章可以收获一些知识,那么我会非常高兴的。

javascript的一些算法的实用小技巧的更多相关文章

  1. PHP 常用函数库和一些实用小技巧

    PHP 常用函数库和一些实用小技巧 作者: 字体:[增加 减小] 类型:转载   包括文件读取函式,文件写入函式,静态页面生成函式,目录删除函式等   文件读取函式 //文件读取函式 function ...

  2. Vim实用小技巧

    Vim实用小技巧 一些网络上质量较高的Vim资料 从我07年接触Vim以来,已经过去了8个年头,期间看过很多的Vim文章,我自己觉得非常不错,而且创作时间也比较近的文章有如下这些. Vim入门 目前为 ...

  3. svn checkout 实用小技巧

    svn checkout 实用小技巧 by:授客 QQ:1033553122   问题描述: 用svn小乌龟软件,进行update,commit之前,先要把svn工作目录checkout到本地,那么问 ...

  4. 实用小技巧(一):UIScrollView中上下左右滚动方向的判断

    https://www.jianshu.com/p/93e8459b6dae 2017.06.01 01:13* 字数 674 阅读 1201评论 0喜欢 1 2017.06.01 01:13* 字数 ...

  5. 【前端】javascript中10常用的个小技巧总结

    javascript中10常用的个小技巧总结 本文转自:http://www.cnblogs.com/libin-1/p/6756393.html 1. new Set() 可能有人知道ES6中提供了 ...

  6. javascript的40个网页常用小技巧

    下面是javascript的40个网页常用小技巧,对网站开发人员相信会有帮助.1. oncontextmenu="window.event.returnValue=false" 将 ...

  7. VC6.0实用小技巧

    VC6.0的若干实用小技巧 .检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}.方括号[].圆括号()和尖括号<>)前面,键入快捷键 “Ctrl+]”.如果括号匹配正确, ...

  8. 必看!macOS进阶不得不知的实用小技巧

    不知道大家对使用苹果电脑的体验如何?您充分利用您的mac了吗?其实macOS上存在着许多快捷方式和技巧可以帮助简化我们的工作流程,提高效率,但是在日常生活中经常被人们忽略或者遗忘.以下是macdown ...

  9. 实用小技巧:Notepad++直接连接Linux

    实用小技巧:Notepad++直接连接Linux 前言 号称编辑器之神的Vim对于只会用几个基础操作的本人而言,在编辑一些大型文本有那么些力不从心: 平时都是通过Xftp拖到本地,修改完后再覆盖回去: ...

随机推荐

  1. 如何快速生成企业Web应用

    随着互联网的发展,企业认识到"电子化"和"无纸化"办公是一种必然趋势,但是企业在信息化建设中经常望而却步,主要原因是高昂的建设成本与不可以预估的结果风险.另外软 ...

  2. 注解【介绍、基本Annotation、元Anntation、自定义注解、注入基本信息、对象】

    什么是注解? 注解:Annotation-. 注解其实就是代码中的特殊标记,这些标记可以在编译.类加载.运行时被读取,并执行相对应的处理. 为什么我们需要用到注解? 传统的方式,我们是通过配置文件(x ...

  3. 从JS和jQuery浅谈DOM操作,当我们在获取时,究竟获取了什么

    0.写在前面的话 自己对前端的东西一直不是很熟,现在开始要想办法从前端各个地方去获取想要的属性值的时候,也基本是在网上现炒现卖,几周下来,发现自己还是迷迷糊糊,可以算是一无所获. 所以就抽时间,把这一 ...

  4. 使用cocos2d脚本生成lua绑定

    这几天要老大要求把DragonBones移到cocos2dx 3.0 里边,并且绑定lua使用接口.因为刚学lua,使用的引擎也刚从2.2改为3.0,各种不熟悉,折腾了好几天才弄完,有空了总结一下 这 ...

  5. mint-ui vue双向绑定

    由于最近项目需求,用上了mint-ui来重构移动端页面,从框架本身来讲我觉得很强大了,用起来也很不错,但是文档就真的是,,,,让我无言以对,给的api对于我们这些小菜鸟来讲真的是处处是坑呀(ps:用v ...

  6. 51 nod 1521 一维战舰 时间复杂度O(n),同 Codeforces 567D. One-Dimensional Battle Ships 有详细注释

    题目:51nod: 题目Codeforces: 题目注意到两个战舰不能挨在一起就可以了. // 每一段 struct node{ int left; // 段的左端点 int right; // 段的 ...

  7. java数据库编程之事务、视图、索引、备份、恢复

    第五章:事务.视图.索引.备份和恢复 5.1:事务 事务的概念:事务(transcation)是讲一系列数据操作捆绑成为一个整体进行统计管理. 如果某一事务执行成功了,则该事务进行操作的所有数据将会提 ...

  8. Oracle添加含有脏数据的约束

    需求: 一个表的唯一约束被禁用期间,有脏数据进来,当启用约束时失败. 环境: -bash-4.1$ uname -a Linux dbtest1 2.6.32-279.el6.x86_64 #1 SM ...

  9. IEnumerable,ICollection,IList,List之间的区别

    做C#的同学们,都知道,一类只能有一个继承类,但可以实现多个接口.这句话就告诉我们:IEnumerable,ICollection,IList,List区别了 // 摘要: // 公开枚举器,该枚举器 ...

  10. Golang:使用自定义模板发送邮件

    https://medium.com/@itsHabib/sending-emails-with-go-using-a-custom-template-ae863b65a859 作者:Michael ...