JavaScript学习之Array(数组对象)方法介绍
2016-08-05 15:15
387 查看
概述
Array | 对数组的内部支持 |
Array.concat( ) | 连接数组 |
Array.join( ) | 将数组元素连接起来以构建一个字符串 |
Array.length | 数组的大小 |
Array.pop( ) | 删除并返回数组的最后一个元素 |
Array.push( ) | 给数组添加元素 |
Array.reverse( ) | 颠倒数组中元素的顺序 |
Array.shift( ) | 将元素移出数组 |
Array.slice( ) | 返回数组的一部分 |
Array.sort( ) | 对数组元素进行排序 |
Array.splice( ) | 插入、删除或替换数组的元素 |
Array.toLocaleString( ) | 把数组转换成局部字符串 |
Array.toString( ) | 将数组转换成一个字符串 |
Array.unshift( ) | 在数组头部插入一个元素 |
Array 介绍
可用性
JavaScript 1.1; JScript 2.0; ECMAScript v1从…继承/覆盖
继承于 Object构造函数
new Array( ) new Array(size) new Array(element0, element1, ..., elementn)
参数
size期望的数组元素个数。返回的数组,1ength域将被设为size的值。
element0, ... elementn
两个或多个值的参数列表。当使用这些参数来调用构造函数Array()时,新创建的数组的元素就会被初始化为这些值,它的length域也会被设置为参数的个数。
返回值
新创建并被初始化了的数组。如果调用构造函数Array()时没有使用参数,那么返回的数组为空,length域为0。当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数、元素为undefined的数组。当用其他参数调用Array{)时, 该构造函数将用参数指定的值初始化数组。当把构造函数作为函数调用,不使用new运算符时,它的行为与使用new运算符调用它时的行为完全一样。抛出
RangeError当只传递给Array()构造函数一个整数参数size时,如果size是负数,或者大子232 -1,将抛出RangeError异常。
直接量语法
ECMAScript v3规定了数组直接量的语法,JavaScript 1.2和JScript 3.0实现了它。可以把—个用逗号分隔的表达式列表放在方括号中,创建并初始化—个数组。这些表达式的值将成为数组元素。例如:var a = [1, true, 'abc']; var b = [a[0], a[0]*2, f(x)];
属性
length一个可读可写的整数,声明了数组中的元素个数。如果数组中的元素不连续,它就是比数组中的最后—个元素的下标大1的整数。改变这个属性的值将截断或扩展数组。
Array.concat( ) 连接数组
可用性
JavaScript 1.2; JScript 3.0; ECMAScript v3语法
array.concat(value, ...)
参数
value, ...要增加到array中的值,可以是任意多个。
返回值
一个新数组,是描述
方法concat()将创建并返回一个新数组,这个数组是将所有参数都添加到array中生成的。它并不修改array。如果要进行concat()操作的参数是一个数组,那么添加的是数组中的元素,而不是数组。示例
var a = [1,2,3]; a.concat(4, 5) //返回 [1,2,3,4,5] a.concat([4,5]); //返回 [1,2,3,4,5] a.concat([4,5],[6,7]) //返回 [1,2,3,4,5,6,7] a.concat(4, [5,[6,7]]) //返回 [1,2,3,4,5,[6,7]]
Array.join( ) 将数组元素连接起来以构建一个字符串
可用性
JavaScript 1.1; JScript 2.0; ECMAScript v1语法
array.join( ) array.join(separator)
参数
separator在返回的字符串中用于分隔数组元素的字符或字符串,它是可选的。如果省略了这个参数,用逗号作为分隔符。
返回值
—个字符串,通过把array的每个元素转换成字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成。描述
方法join()将把每个数组元素转换成一个字符串,然后把这些字符串连接起来,在两个元素之间插入指定的separator字符串。返回生成的字符串。可以用String对象的split()方法执行相反的操作,即把一个字符串分割成数组元素。
示例
a = new Array(1, 2, 3, "testing"); s = a.join("+"); // s 是字符串"1+2+3+testing"
Array.length 数组大小
可用性
JavaScript 1.1, JScript 2.0; ECMAScript v1语法
array.length
描述
数组的length属性总是比数组中定义的最后一个元素的下标大一。对于那些具有连续元素,而且以元素0开始的常规数组来说,属性length声明了数组中的元素个数。数组的length属性在用构造函数Array()创建数组时初始化。给数组添加新元素时,如果必要,将更新length的值:
a = new Array( ); // a.length 被初始化为 0 b = new Array(10); // b.length 被初始化为 10 c = new Array("one", "two", "three"); // c.length 被初始化为 3 c[3] = "four"; // c.length 被更新为 4 c[10] = "blastoff"; // c.length 变为 11
设置属性length的值可以改变数组的大小。如果设置的值比它的当前值小,数组将被截断,其尾部的元素将丢失。如果设置的值比它的当前值大,数组将增大,新元素被添加到数组尾部,它们的值为undefined。
Array.pop( ) 删除并返回数组的最后一个元素
可用性
JavaScript 1.2; JScript 5.5; ECMAScript v3语法
array.pop( )
返回值
array的最后一个元素。描述
方法pop()将删除array的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组,返回undefined。示例
方法pop()和方法push()可以提供先进后出(FILO)栈的功能。例如:var stack = []; // 栈:[] stack.push(1, 2); // 栈: [1,2] 返回 2 stack.pop( ); // 栈: [1] 返回 2 stack.push([4,5]); // 栈: [1,[4,5]] 返回 2 stack.pop( ) // 栈: [1] 返回 [4,5] stack.pop( ); // 栈: [] 返回 1
Array.push( ) 给数组添加元素
可用性
JavaScript 1.2; JScript 5.5; ECMAScript v3语法
array.push(value, ...)
参数
value, ...要添加到array尾部的值,可以是一个或多个。
返回值
把指定的值添加到数组后的新长度。描述
方法push()将把它的参数顺次添加到array的尾部。它直接修改array,而不是创建——个新的数组。方法push()和方法pop()用数组提供先进后出栈的功能。参阅 “Array.pop()”中的示例。Bug
在JavaScript的Netscape实现中,如果把语言版本明确地设置为1.2,该函数将返回最后添加的值,而不是返回新数组的长度。Array.reverse( ) 颠倒数组中元素位置
可用性
JavaScript 1.1; JScript 2.0; ECMAScript v1语法
array.reverse( )
描述
Array对象的方法reverse()将颠倒数组中元素的顺序。它在原数组上实现这一操作,即重排指定的array的元素,但并不创建新数组。如果对array有多个引用,那么通过所有引用都可以看到数组元素的新顺序。示例
a = new Array(1, 2, 3); // a[0] == 1, a[2] == 3; a.reverse( ); // Now a[0] == 3, a[2] == 1;
Array.shift( ) 将元素移除数组
可用性
JavaScript 1.2; JScript 5.5; ECMAScript v3语法
array.shift( )
返回值
数组原来的第一个元素。描述
方法shift()将把array的第—个元素移出数组,返回那个元素的值,并且将余下的所有元素前移一位,以填补数组头部的空缺。如果数组是空的,shift()将不进行任何操作,返回undefined。注意,该方法不创建新数组,而是直接修改原有的数组。方法shift()和方法Array.pop()相似,只不过它在数组头部操作,而不是在尾部操作。该方法常常和unshift()一起使用。
示例
var a = [1, [2,3], 4] a.shift( ); // 返回 1; a = [[2,3], 4] a.shift( ); // 返回 [2,3]; a = [4]
Array.slice( ) 返回数组一部分
可用性
JavaScript 1.2; JScript 3.0; ECMAScript v3语法
array.slice(start, end)
参数
start数组片段开始处的数组下标。如果是负数,它声明从数组尾部开始算起的位置。 也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推。
end
数组片段结束处的后一个元素的数组下标。如果没有指定这个参数 包含从start开始到数组结束的所有元素。如果这个参数是负数, 从数组尾部开始算起的元素。
返回值
一个新数组,包含从start到end(不包括该元素)指定的array元素。描述
方法slice()将返回数组的一部分,或者说是一个子数组。返回的数组包含从start 开始到end之间的所有元素,但是不包括end所指的元素。如果没有指定end,返回的数组包含从start开始到原数组结尾的所有元素。注意:该方法并不修改数组。如果想删除数组中的一段元素,应该使用方法Array.splice。
示例
var a = [1,2,3,4,5]; a.slice(0,3); // 返回 [1,2,3] a.slice(3); // 返回 [4,5] a.slice(1,-1); // 返回 [2,3,4] a.slice(-3,-2); // 返回 [3]; IE 4存在的Bug: 返回[1,2,3]
Bug
在Internet Explorer 4中,参数start不能为负数。Array.sort( ) 对数组元素进行排序
可用性
JavaScript 1.1; JScript 2.0; ECMAScript v1语法
array.sort( ) array.sort(orderfunc)
参数
orderfunc用来指定按什么顺序进行排序的函数,可选。
返回值
对数组的引用。注意,数组在原数组上进行排序,不制作副本。描述
方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如果有必要的话),以便进行比较。如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:
如果根据你的评判标准,a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值。
如果a等于b,就返回0。
如果a大于b,就返回一个大于0的值。
注意,数组中undefined的元素都排列在数组末尾。即使你提供了自定义的排序函数也是这样,因为undefined值不会被传递给你提供的orderfunc。
示例
下面的代码展示了如何编写按数字顺序,而不是按字母顺序对数组进行排序的比较函数:// 按照数字顺序排序的排序函数 function numberorder(a, b) { return a - b; } a = new Array(33, 4, 1111, 222); a.sort( ); // 按照字母顺序的排序结果为: 1111, 222, 33, 4 a.sort(numberorder); // 按照数字顺序的排序结果为: 4, 33, 222, 1111
Array.splice( ) 插入、删除或替换数组的元素
可用性
JavaScript 1.2; JScript 5.5; ECMAScript v3语法
array.splice(start, deleteCount, value, ...)
参数
start开始插入和(或)删除的数组元素的下标。
deleteCount
从start开始,包括start所指的元素在内要删除的元素个数。这个参数是可选的,如果没有指定它,splice()将删除从start开始到原数组结尾的所有元素。
value, ...
要插人数组的零个或多个值,从start所指的下标处开始插入。
返回值
如果从array中删除了元素,返回的是含有被删除的元素的数组。但是要注意,由于存在—个bug,因此在JavaScriptl.2的Netscape实现中,返回的并不总是数组。描述
方法splice()将删除从start开始(包括start所指的元素在内)的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。位于插入或删除的元素之后的数组元素都会被移动,以保持它们与数组其他元素的连续性。注意,虽然spllce()方法与slice()方法名字相似,但作用不同,方法splice()直接修改数组。示例
读了下面的例子,就很容易理解splice()的操作了:var a = [1,2,3,4,5,6,7,8] a.splice(4); // 返回 [5,6,7,8]; a is [1,2,3,4] a.splice(1,2); // 返回 [2,3]; a is [1,4] a.splice(1,1); // Netscape/JavaScript 1.2 返回 4 ,应该返回 [4] a.splice(1,0,2,3); // Netscape/JavaScript 1.2 返回 undefined ,应该返回 []
Bug
方法splice()假定在各种情况下均返回一个包含已删除元素的数组。但是,在 Netscape的JavaScript 1.2解释器中,如果删除的是单个元素,那么该方法返回的是元素,而不是包含那个元素的数组。如果没有删除任何元素,它不是返回一个空数组,而是什么都不返回。只要把语言版本明确地设置为1.2,JavaScript的Netscape实现都有这种bug行为。Array.toLocaleString( ) 把数组转换成局部字符串
可用性
JavaScript 1.5; JScript 5.5; ECMAScript v1从…继承/覆盖
覆盖 Object.toLocaleString( )语法
array.toLocaleString( )
返回值
数组array的局部字符串表示。抛出
TypeError调用该方法时,如果对象不是Array,则抛出异常。
描述
数组的方法toString()将返回数组的局部字符串表示。它首先调用每个数组元素的toLocaleString()方法,然后用地区特定的分隔符把生成的字符串连接起来,形成一个字符串。Array.toString( ) 把数组转换成一个字符串
可用性
JavaScript 1.1; JScript 2.0; ECMAScript v1从…继承/覆盖
Overrides Object.toString( )语法
array.toString( )
返回值
array的字符串表示。抛出
TypeError调用该方法时,若对象不是Array,则抛出该异常。
描述
数组的toString()方法将把数组转换成一个字符串,并且返回这个字符串。当数组用于字符串环境中时,JavaScript会调用这一方法将数组自动转换成一个字符串。但在某些情况下,需要明确地调用这个方法。toString()在把数组转换成字符串时,首先要将数组的每个元素都转换成字符串 (通过调用这些元素的toString()方法)。当每个元素都被转换成字符串时,它就以列表的形式输出这些字符串,字符串之间用逗号分隔。返回值与没有参数的join() 方法返回的字符串相同。
Bug
在Netscape实现中,如果把语言版本明确地设置为1.2,toString()将会返回用逗号和空格分隔的数组元素列表,这个列表采用数组直接量表示法,用方括号括起元素。例如,在把<script>标记的language性质明确地设置为“JavaScript l.2”时,就会发生这种情况。Array.unshift( ) 在数组头部插入一个元素
可用性
JavaScript 1.2; JScript 5.5; ECMAScript v3语法
array.unshift(value, ...)
参数
value, ...要插入数组头部的一个或多个值。
返回值
数组的新长度描述
方法unshift()将把它的参数插入array的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组新的元素0,如果还有第二个参数,它将成为新的元素1,以此类推。注意,unshift()不创建新数组,而是直接修改原有的数组。示例
方法unshift()通常和方法shift()一起使用。例如:var a = []; // a:[] a.unshift(1); // a:[1] 返回 1 a.unshift(22); // a:[22,1] 返回 2 a.shift( ); // a:[1] 返回 22 a.unshift(33,[4,5]); // a:[33,[4,5],1] 返回 3
相关文章推荐
- JavaScript 5 新增 Array 方法实现介绍
- javascript学习笔记(五) Array 数组类型介绍
- javascript学习笔记(五) Array 数组类型介绍
- JavaScript学习 5.2.0 Array类型的介绍
- javascript Array数组常用方法学习与总结
- Javascript中String、Array常用方法介绍
- JavaScript之面向对象学习五(JS原生引用类型Array、Object、String等等)的原型对象介绍
- JavaScript学习-Array的方法
- JavaScript的关于Array的方法介绍
- Javascript学习---Array数组方法详解
- Jquery遍历数组之$.inArray()方法介绍
- JavaScript返回上一页的几种方法及区别介绍
- JavaScript返回上一页的几种方法及区别介绍
- 2017/12/31Java基础学习——查找数组元素位置のArrays.binarySearch()方法介绍
- 2017/12/30Java基础学习——复制数组のSystem.arraycopy()方法讲解
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍
- Jquery遍历数组之$.inArray()方法介绍
- JavaScript Array 对象方法 以及 如何区分javascript中的toString()、toLocaleString()、valueOf()方法
- javaScript学习--------------------Array(数组)总结