6.19随笔

shift:从集合中把第一个元素删除,并返回这个元素的值。

unshift: 在集合开头添加一个或更多元素,并返回新的长度

push:在集合中添加元素,并返回新的长度

pop:从集合中把最后一个元素删除,并返回这个元素的值。

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

栈是限定仅在表头进行插入和删除操作的线性表。

队列

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

js数组的sort排序的原理和应用

1、js sort()方法的应用:

首先:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

若 a 等于 b,则返回 0。

若 a 大于 b,则返回一个大于 0 的值。

例1:

<script>

var numArr = new Array(12,23,1,4,23,34,2,5);

numArr.sort(function compare(a,b){return a-b;});

for (var i = 0; i<numArr.length; i++) {

document.write(numArr[i] +"<br>");

}

</script>

这一段代码显示结果: 正序!1 ,2,4,5,12,23,23,34

例二:

<script>

var numArr = new Array(12,23,1,4,23,34,2,5);

numArr.sort(function compare(a,b){return b-a;});

for (var i = 0; i<numArr.length; i++) {

document.write(numArr[i] +"<br>");

}

</script>

这一段代码显示结果: 倒序!34,23,23,12,5,4,2,1

这说明正序倒序的结果和sort()方法函数中的参数位置有关。

2js sort()方法的原理:

冒泡排序法。

例:

1var arrA = [6,2,4,3,5,1];

2 arrA.sort();

这个排序这进行两两比较.

比如你这个数组按升序排列var arrA = [6,2,4,3,5,1];

第一次比较6,2

6比2大得到2,6

原数组变成[2,6,4,3,5,1]

第2次比较第2个和第3个数,6和4.

6比4大,得到4,6

结果[2,4,6,3,5,1]

第3次比较第3个和第4个数6和3.

得到[2,4,3,6,5,1]

第4次[2,4,3,5,6,1]

第5次[2,4,3,5,1,6]

第一轮完毕

第二轮

第6次,2比4小,不变[2,4,3,5,1,6]

第7次[2,3,4,5,1,6]

第8次4比5小,不变[2,3,4,5,1,6]

第9次[2,3,4,1,5,6]

第三轮

第10次 2比3小,不变[2,3,4,1,5,6]

第11次 3比4小,不变[2,3,4,1,5,6]

第12次 [2,3,1,4,5,6]

第4轮

第13次 2比3小,不变[2,3,1,4,5,6]

第14次 [2,1,3,4,5,6]

第5轮

第15次[1,2,3,4,5,5]

同理可知后续过程。

3、随机排列的写法

arr.sort

(

function ()

{

return Math.random()<0.5?1:-1;

}

);

split用法:

定义和用法

split() 方法用于把一个字符串分割成字符串数组。

语法

stringObject.split(separator,howmany)

参数

描述

separator

必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。

howmany

可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

返回值

一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。

但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。

提示和注释

注释:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

注释:String.split() 执行的操作与 Array.join 执行的操作是相反的。

时间: 2024-10-11 16:23:03

6.19随笔的相关文章

10.19随笔

Ajax(阿贾克斯) 优点: 实现局部刷新(异步方式-页面继续操作,无需等待,无刷新) 缺点: 跨域(违背了同源策略)[Proxy代理,JSONP,CORS] 同源策略: 要访问的地址:协议名相同,域名相同,端口相同 同步与异步 同步:打电话(等待,阻塞) var w=show(); console.log(w);//123 异步:发信息(非阻塞) show(function(w){ console.log(w);//123 }) .........下面的代码继续执行..............

一周随笔--15.10.19

一周新知识点记录(15.10.19) 一.ipad——UIPopoverController UIPopoverController继承自NSObject,因此不具备显示能力,它是通过其中的内容控制器显示的内容的.  UIPopoverController使用四部曲: 一.创建UIPopoverController的内容控制器 二.根据内容控制器初始化UIPopoverController对象 三.设置UIPopoverController对象的尺寸 四.显示UIPopoverControlle

2017年1月19日--随笔

最近两天撸前端...作为一个写程序巨少的伪程序猿,去做前端,尤其是前端设计..真的是心累啊 注意div的相对定位和绝对定位前端的兼容性也很迷.我的界面完全ok,但是其他设备会出现背景无法显示的问题,这很迷啊,明天还得解决 最后就是每天70词,不能输给周代青,好不容易也算是找到了一个能一起背单词的兄弟. 加油加油. 2017.1.19 腊月初三 原文地址:https://www.cnblogs.com/EEEE1/p/8319020.html

2018年的随笔总结跟19年的预计(挖波年初的矿)

其实有点汗颜,我这个博客是之前学Python的时候老师让申请的,之后也没好好学,所有博客也没有用,今天休息在家没事想起来应该写点东西,但是不知道写在哪里,才想起来有这个东西,没有好友什么的,也正好适合随便写:刚登上来看了一下就只有17年的时候写的一篇关于Python的文章,当时觉得写的挺烂的,现在看其实也还好起码是写了的,再看看18年一点东西都没有才想真的要有个记录的习惯会比较好,不然呢自己都不知道你曾经干了什么,就想我现在18年也没发过什么朋友圈也没有记录什么就感觉不知不觉间过去了至于干了什么

yii2框架随笔19

public function canGetProperty($name, $checkVars = true) { // property_exists — 检查对象或类是否具有该属性 return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name); } /** * Returns a value indicating whether a property can be s

(19) PHP 随笔---LAMP 系统常用命令

◇在文件中查找内容: grep 被搜寻内容 文件 例如:grep hello passwd //在passwd文件中搜索hello内容 //会把hello所在行的内容都打印到终端显示 ◇查找文件: which filename ◇查看文件所占空间大小: du -u filename //查看文件所占据的空间 ◇查看系统分区情况 df -lh ◇杀死指定进程号的进程 kill -9 pid ◇管道命令(前者的输出就是后者的输入,类似Smarty的变量调节器): grep hello passwd

Mantis 1.2.19 on Windows Server 2012 r2 datacenter 安装及配置随笔

一.前言 新的小团队需要搭建一个缺陷管理的工具,之前用过bugfree,感觉比较适合,但是 禅道不太适合,放弃之,于是又百度推荐的: 缺陷管理工具:1.  Bugzilla2.  Bugfree3.  TestDirector (Quality Center)4.  ClearQuest5.  JIRA6.  Mantis7.  Bugzero8. BugTracker9. URTracker10.KisTracker11.TestLink12.JTrac13.BugNet14.BugOnlin

11月19日随笔

今天在云和学院学习了File类 基本操作:判存.复制.移动.删除 基本方法: –File.Exist(); –File.Copy(); –File.Move(); File.Delete() File.Copy(“source”, “targetFileName”, true);//文件拷贝,true表示当文件存在时“覆盖”,如果不加true,则文件存在报异常. File.Exists();//判断文件是否存在 File.Move(“source”, “target”);//移动(剪切) Fil

XE3随笔19:实例 - 借用 Google 实现全文翻译

调用 Google 翻译的地址格式: http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + 原始文本 + "&langpair=" + 原语言 + "%7C" + 目标语言 返回的数据格式如下, 可以用 responseData.translatedText 简单获取: { "responseData" : {"trans