认识Javascript数组(3)
作者:阿克 来源:蓝色理想 发布时间:2009-08-27 15:26:00
标签:javascript,数组
pop
删除数组最后一个元素,并返回该元素
var a = ["aa","bb","cc"];
document.write(a.pop()); // -> cc
document.write(a); // -> aa, bb
如果数组为空,则返回undefined
push
往数组后面添加数组,并返回数组新长度
var a = ["aa","bb","cc"];
document.write(a.push("dd")); // -> 4
document.write(a); // -> aa,bb,cc,dd
document.write(a.push([1,2,3])); // -> 5
document.write(a); // -> aa,bb,cc,dd,1,2,3
跟concat的区别在于,concat不影响原数组,直接返回新数组,而push则直接修改原数组,返回的是数组新长度
sort
数组排序,先看个例子
var a = [11,2,3,33445,5654,654,"asd","b"];
alert(a.sort()); // -> 11,2,3,33445,5654,654,asd,b
结果是不是很意外,没错,排序并不是按整型大小,而是字符串对比,就是取第一个字符的ANSI码对比,小的排前面,相同的话取第二个字符再比,如果要按整型数值比较,可以这样
var a = [11,2,3,33445,5654,654];
a.sort(function(a,b) {
return a - b;
});
alert(a); // -> 2,3,11,654,5654,33445
sort()方法有个可选参数,就是代码里的function,这是个简单的例子,不可对非数字进行排序,非数字需要多做判断,这里就不多讲
reverse
对数组进行反排序跟,sort()一样,取第一字符ASCII值进行比较
var a = [11,3,5,66,4];
alert(a.reverse()); // -> 4,66,5,3,11
如果数组里面还包含数组,则当为对象处理,并不会把元素解出来
>var a = ['a','b','c','d','e','f','g',[4,11,33]];
alert(a.reverse()); // -> 4,11,33,g,f,e,d,c,b,a
alert(a.join(" * ")); // -> 4,11,33 * g * f * e * d * c * b * a
按理应该是11排最后面,因为这里把 4,11,33 当做完整的对象比较,所以被排在第一位。看不明白的话,用join()串起来,就明了多
shift
删除数组第一个元素,并返回该元素,跟pop差不多
var a = ["aa","bb","cc"];
document.write(a.shift()); // -> aa
document.write(a); // -> bb,cc
当数组为空时,返回undefined
unshift
跟shift相反,往数组最前面添加元素,并返回数组新长度
var a = ["aa","bb","cc"];
document.write(a.unshift(11)); // -> 4 注:IE下返回undefined
document.write(a); // -> 11,aa,bb,cc
document.write(a.unshift([11,22])); // -> 5
document.write(a); // -> 11,22,11,aa,bb,cc
document.write(a.unshift("cat")); // -> 6
document.write(a); // -> cat,11,22,11,aa,bb,cc
注意该方法,在IE下将返回undefined,貌似微软的bug,我在firefox下则能正确发挥数组新长度


猜你喜欢
- 我已经不记得是在哪里第一次看到process.nextTick这个玩意的调用了,哦,应该是在nodejs官方的process文档里看到的。当
- 本文已经收录于最新版的 《PyCharm中文指南》更多 PyCharm 使用技巧,可前往在线文档学习:《PyCharm 中文指南》2.0 在
- 直接赋值:其实就是对象的引用(别名)。浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。深拷贝(deepcopy): copy 模
- 影响数据库性能的常见因素如下:(1)磁盘IO;(2)网卡流量;(3)服务器硬件;(4)SQL查询速度。下面介绍几个mysql 优化的工具,可
- 这几天用到了raw socket,用python写了些demo程序,这里记录下。首先我们看一个简单的sniffer程序:#! /usr/bi
- 锁的定义在计算机程序中锁用于独占资源,获取到锁才可以操作对应的资源。锁的实现锁在计算机底层的实现,依赖于CPU提供的CAS指令(compar
- 在使用json.dumps时要注意一个问题>>> import json>>> print json.d
- 前言二维码现在是随处度可以看到,买东西,支付,添加好友只要你扫一扫就能完成整个工作,简单且方便。所以利用这个新春佳节做一个带着新春祝福的二维
- 1 词频统计1.1 简单词频统计1.导入jieba库并定义文本import jiebatext = "Python是一种高级编程语
- asp之家注:学习asp网页编程的朋友一定用过ACCESS数据库,access的简单方便,大大降低了asp初学者学习asp的门槛,对于学习a
- 1.1 二叉树的初始化#initial of BinaryTreeclass BinaryTree: def __
- IE 开发团队更改了 IE8 的 User-agent ,更改的部分信息如下:IE8 on Windows Vista (Compatibi
- 此功能已进入试用一周了,都没有问题,奇怪的是今天出现了问题?? AjaxRequestObj.createEqStatusParameter
- 一、CONCAT函数concat函数是将多个字段或字符串拼接为一个字符串;但是字符串之间没有任何分隔。concat函数官方介绍-- CONC
- 初学python,写一个小程序练习一下。主要功能就是增删改查的一些功能。主要用到的技术:字典的使用,pickle的使用,io文件操作。代码如
- 搭建vue的开发环境:1、必须要安装nodejs2、搭建vue的开发环境 ,安装vue的脚手架工具 官方命令行工具npm install -
- 引言在review 一些代码中,发现经常某个类型定义的方法,其接收者既有值类型,又有指针类型,然后 Goland 就有提示: Struct
- 我们需要将【小组销量排名表.xlsx】通过邮件发送给【组长邮箱.xlsx】中的各个组长。这里会学一个新的知识点—&
- 本文实例讲述了Python数据结构之图的应用。分享给大家供大家参考,具体如下:一、图的结构二、代码# -*- coding:utf-8 -*
- 思路:创建文件时,先检查是否有同名文件(使用os.path.isfile),如果有,则在文件名后加上编号n来创建。关键点:1. 使用os.p