`

JavaScript学习笔记1:Array类

阅读更多
JavaScript数组最多可以存放4294967295个项,如果要添加更多的项,则会发生异常。

Array对象覆盖了toString()方法和valueOf方法,返回特殊的字符串。

var aColors = ["red","green","blue"];
alert(aColors.toString());//输出red,green,blue
alert(aColors.valueOf());//输出red,green,blue

toLocaleString()方法的返回值也是由数组构成的字符串。

var aColors = ["red","green","blue"];
alert(aColors.toLocaleString());//输出red, green, blue大多数情况下toLocaleString()方法的输出值都与toString()方法的输出值相同,这里的输出值多了两个空格(在green和blue的前面各有一个),在IE6和FF都试过了,把语言区域和Internet语言首选项都设成英文国家,结果还是一样,不知道为什么,请高手指点。

join()方法,连接字符串,只有一个参数即数组项之间使用的字符串。

var aColors = ["red","green","blue"];
alert(aColors.join(","));//输出red,green,blue
alert(aColors.join("]["));//输出red][green][blue
alert(aColors.join("-我是连接字符串-"));//输出red-我是连接字符串-green-我是连接字符串-blue

split()方法,分割字符串,和join()方法相反split()是把字符串转换成数组

var sColors = "green";
aColors = sColors.split("");
alert(aColors.toString());//输出g,r,e,e,n

var sColors = "red-green-blue";
aColors = sColors.split("-");
alert(aColors.toString());//输出red,green,blue

Array对象具有两个String类具有的方法,即concat()和slice()方法。

concat()方法,参数将被附加在数组末尾

var aColors = ["red","green","blue"];
var aColors2 = aColors.concat("yellow", "purple");
alert(aColors2.toString());//输出red,green,blue,yellow, purple
alert(aColors.toString());//输出red,green,blue

slice()方法,取出数组的一部分

var aColors = ["red","green","blue","yellow", "purple"];
var aColors2 = aColors.slice(1);//截取数组从位置1个开始的所有元素(0为第一个元素)
var aColors3 = aColors.slice(1,4);//截取数组从位置1个开始到位置4之前的元素(不包括位置4)
alert(aColors2.toString());//输出green,blue,yellow,purple
alert(aColors3.toString());//输出green,blue,yellow


后进先出(LIFO),push()方法和pop()方法
push()方法用于向数组末尾添加一个或多个项
pop()方法用于删除数组的最后一项

var stack = new Array;
stack.push("red");
stack.push("green");
stack.push("yellow");
alert(stack.toString());//输出red,green,yellow
var vItem = stack.pop();
alert(vItem);//输出yellow
alert(stack.toString());//输出red,green

先进先出(FIFO),shift()方法和unshift()方法
shift()方法用于删除数组中的第一项
unshift()方法用于把一个项放在数组的第一个位置,然后把所有的项向后移动一个位置
var aColors = ["red","green","yellow"];
var vItem = aColors.shift();
alert(aColors.toString());//输出red,green,yellow
alert(vItem);//输出red
aColors.unshift("black");
alert(aColors.toString());//输出black,green,yellow

通过调用shift()和push()方法模仿队列,后进后出(LILO)

var queue = ["red","green","yellow"];
queue.push("black");
alert(queue.toString());//输出red,green,yellow,black
var sNextColor = queue.shift();
alert(sNextColor);//输出red
alert(queue.toString());//输出green,yellow,black

为数组排序,reverse()方法和sort()方法

reverse()方法,逆序排列

var aColors = ["red","green","blue","1","2","3"];
aColors.reverse();
alert(aColors.toString());//输出3,2,1,blue,green,red

sort()方法,升序排列

var aColors = ["red","green","blue","1","2","3"];
aColors.sort();
alert(aColors.toString());//输出1,2,3,blue,green,red

var aColors = ["15","2","3"];
aColors.sort();
alert(aColors.toString());//输出15,2,3
这里15排在了2和3的前面,这是因为sort()方法进行排列以前先调用toString()方法将所有值转换成字符串,然后根据字符代码比较数组项,1小于2所以15排在2前面。。解决方法如下:
var aColors = ["15","2","3"];
aColors.sort();
alert(aColors.toString());//输出15,2,3

var aColors = ["15","2","3"];
aColors.sort(compareIntegers);
alert(aColors.toString());//输出2,3,15

function compareIntegers(vNum1,vNum2){
var vNum1 = parseInt(vNum1);
var vNum2 = parseInt(vNum2);
if (vNum1 < vNum2){
return -1;
}else if (vNum1 > vNum2){
return 1;
}else{
return 0;
}
}
sort()方法可以仅可以接受一个参数,即比较函数,这里的比较函数为compareIntegers,需要自己定义。
如需要降序排列只需要先调用一次sort()方法升序排列,再调用reverse()方法把顺序反过来就可以了^_^

splice()方法
arr.splice(0,2)//删除数组中的前两项
arr.splice(2,0,"red","green")//在位置2处插入red和green
arr.splice(2,1,"red","green")//将删除位置2处的项,并插入red和green

var arr = ["1","2","3","4","5","6"];
arr.splice(0,2);
alert(arr.toString());//输出3,4,5,6

var arr = ["1","2","3","4","5","6"];
arr.splice(2,0,"red","green");
alert(arr.toString());//输出1,2,red,green,3,4,5,6

var arr = ["1","2","3","4","5","6"];
arr.splice(2,1,"red","green");
alert(arr.toString());//输出1,2,red,green,4,5,6

写的有点慢,跟不上看书的速度...
分享到:
评论

相关推荐

    javascript学习笔记.docx

    1 JavaScript基本语法 1) 读未声明的变量会产生错误。写未声明的变量会是JavaScript环境自动产生一个全局变量。 2) 对于完全等同“===”,两个null或者两个undefined是等同的;但null与undefined是不等同的。 3) ...

    javascript学习笔记(五) Array 数组类型介绍

    javascript学习笔记之Array 数组类型介绍,需要的朋友可以参考下

    《JavaScript高级编程》学习笔记之object和array引用类型

    本文给大家分享我的javascript高级编程学习笔记之object和array引用类型,涉及到javascript引用类型相关知识,大家一起看看把。 1. Object类型  大多数引用类型值都是Object类型的实例;而且Object也是ECMAScript中...

    JavaScript学习笔记之DOM操作实例分析

    本文实例讲述了JavaScript学习笔记之DOM操作。分享给大家供大家参考,具体如下: 一、DOM概念 1. “D”:Docment,指的是文档 2. “O”:Object,指的是对象,在javascript有三种对象:用户定义对象、内建对象...

    JavaScript学习文档大全.zip #资源分享达人#

    #资源分享达人# 想要学好JavaScript,那就下载它啊,超级良心啊,绝不做那种一个一个分开学习,恰。。的人。我这里首先有一个完整的笔记(上几万字总结),还有参考文档,其中包含:Array对象的方法参考表格,Canvas...

    javascript类型系统 Array对象学习笔记

    主要介绍了javascript类型系统之Array对象,整理关于Array对象的学习笔记,感兴趣的小伙伴们可以参考一下

    javascript 学习笔记(八)javascript对象

    1、javascript中的内置对象 javascript中除了本身的内置对象,如以下我们所熟悉的对象: •Array •Date •Math •String •RegExp •…… 各个对象都有自己的属性及方法,比如我们经常使用属性及方法 属性:string...

    JavaScript 学习笔记(五)

    本地对象 ①Array类 ②Date类 对象的类型 内置对象 ①Global对象 ②Math对象 宿主对象 今天继续学习JS中的对象,昨天内置对象Global对象和Math对象,今天继续。宿主对象 所有非本地对象都是宿主对象host object,即...

    js学习笔记大全

    * 字符串操作函数、日期操作函数、数组操作函数等,直接增加到 String、Date、Array 类里面,便于直接使用 */ /** * 获取元素,或者在DOM加载完成时执行某函数 * @param arg 此参数为字符串时,认为是 c$....

    JavaScript学习笔记之数组基本操作示例

    本文实例讲述了JavaScript学习笔记之数组基本操作。分享给大家供大家参考,具体如下: 一、数组定义 1、定义 vara=[1,2,3] vara=newArray(1,2,3); 2、长度 返回长度 [removed] vara=[1,2,3,4,5,6]; alert&#40;a...

    JavaScript学习笔记之ES6数组方法

    ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了)。上一次标准的制订还是2009年出台的ES5。目前ES6的标准化工作正在进行中,...

    javascript学习笔记(二)数组和对象部分

    1.JavaScript 中所有变量都是对象,除了两个例外 null 和 undefined。 2.Jscript 支持四种类型的对象:内部对象、生成的对象、宿主给出的对象(所有BOM和DOM对象都是宿主对象。)以及 ActiveX 对象(外部组件)。 3....

    JavaScript学习笔记之创建对象

    JavaScript 有Date、Array、String等这样的内置对象,功能强大使用简单,人见人爱,但在处理一些复杂的逻辑的时候,内置对象就很无力了,往往需要开发者自定义对象。 从JavaScript定义上讲对象是无序属性的集合,其...

    JavaScript 学习笔记(四)

    本地对象 ①Array类 ②Date类 对象的类型 内置对象 ①Global对象 ②Math对象 宿主对象 今天继续学习JS中的对象,昨天学完了本地对象中的两个重要对象Array和Date。今天看下内置对象Global对象和Math对象。 Global...

    JavaScript学习笔记整理之引用类型

    它描述的是一类对象所具有的属性和方法。Object是一个基础类型,Array是数组类型,Date是日期类型,RegExp是正则表达式类型,等。 拥抱JavaScript 曾经名不经传的JavaScript随着AJAX的流行而身价倍增,现在...

    Javascript学习笔记之数组的构造函数

    // Result: [1, 2, 3]new Array(1, 2, 3); // Result: [1, 2, 3][3]; // Result: [3]new Array(3); // Result: []new Array('3') // Result: ['3'] 当只有一个参数被传递到数组的构造函数中,并且这个参数还是一个...

    Javascript学习笔记之函数篇(四):arguments 对象

    每一个 Javascript 函数都能在自己作用域内访问一个特殊的变量 – arguments。这个变量含有一个传递给函数的所有参数的列表。 arguments 对象不是一个数组。尽管在语法上它跟数组有相同的地方,例如它拥有 length ...

Global site tag (gtag.js) - Google Analytics