Array对象方法
方法 描述
concat() 连接两个或更多的数组,并返回结果。
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop() 删除并返回数组的最后一个元素
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
reverse() 颠倒数组中元素的顺序。
shift() 删除并返回数组的第一个元素
slice() 从某个已有的数组返回选定的元素
sort() 对数组的元素进行排序
splice() 删除元素,并向数组添加新元素。
toSource() 返回该对象的源代码。
toString() 把数组转换为字符串,并返回结果。
toLocaleString() 把数组转换为本地数组,并返回结果。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()返回数组对象的原始值
1.4 concat()
语法: array.concat(value, ...)
其中value, ... 要添加到array中的值,可以是任意多个。
返回值: 一个新数组,是把指定的所有参数添加到array中构成的。
描述:方法concat()将创建并返回一个新数组,这个数组是将所有参数都添加到array中生成的。它并不修改array。如果要进行concat()操作的参数是一个数组,那么添加的是数组中的元素,而不是数组。
例子:
var a = [1, 2, 3]; a.concat(4, 5); // Returns [1,2,3,4,5] a.concat([4, 5]); // Returns [1,2,3,4,5] a.concat([4, 5], [6, 7]); // Returns [1,2,3,4,5,6,7] a.concat(4, [5, [6, 7]]); // Returns [1,2,3,4,5,[6,7]]
1.5 join ()
语法: array.join()
array.join(separator)
separator
在返回的字符串中用于分隔数组元素的字符或字符串,这是选用的。如果省略了这个参数,用逗号作为分隔符。
返回值:一个字符串,通过把array的每个元素转换成字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成。
描述:方法join()把每个数组元素转换成一个字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串。返回生成的字符串。
可以用String对象的split()方法执行相反的操作,即把一个字符串分割成数组元素。详情参见“String.split()”。
例子:
var a = new Array(1, 2, 3, "testing"); var s = a.join("+"); // s is the String "1+2+testing"
1.6 pop()
语法: arrayObject.pop()
其中value, ... 要添加到array中的值,可以是任意多个。
返回值: arrayObject 的最后一个元素。
描述: pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
例子:
var arr = new Array(["George","John","Thomas"]) document.write(arr) // Returns George,John,Thomas document.write(arr.pop())// Returns Thomas document.write(arr) // Returns George,John
1.7 push()
语法: array.push(value, ...)
value, ... 要添加到array尾部的值,可以是一个或多个。
返回值: 把指定的值添加到数组后的新长度。
描述:方法push()将马它的参数顺次添加到array的尾部。它直接修改array,而不是创建一个新的数组。方法push()和方法pop()用数组提供先进后出栈的功能。参阅"Array.pop()"中的示例。
例子:
var a = [1, 2, 3]; a.concat(4, 5); // Returns [1,2,3,4,5] a.concat([4, 5]); // Returns [1,2,3,4,5] a.concat([4, 5], [6, 7]); // Returns [1,2,3,4,5,6,7] a.concat(4, [5, [6, 7]]); // Returns [1,2,3,4,5,[6,7]]
1.8 reverse()
语法: 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;
1.9 shift()
语法: array.shift()
返回值: 数组原来的第一个元素。
描述:方法shift()将把array的第一个元素移出数组,返回那个元素的值,并且将余下的所有元素前移一们,以填补数组头部的空缺。如果数组是空的,shift()将不进行任何操作,返回undefiend值。注意,该方法不创建新的数组,而是直接修改原有的array。
方法sihft()和方法Array.pop()相似,只不过它在数组头部操作,而不是在尾部操作。该方法常常和unshift()一起使用。
例子:
var a = [1, [2, 3], 4]; a.shift(); // Return 1; a = [[2,3], 4]; a.shift(); // Return [2,3]; a = [4];
1.10 slice()
语法: array.slice(start, end)
start
数组片段开始处的数组下标。如果是负数,它声明从数组尾部开始算起的位置。也就是说-1指最后一个元素,-2指倒数第二个元素,以此类推。
end
数组片段结束处的后一个元素的数组下标。如果没有指定这个参数,切分的数组包含从start开始到数组结束的所有元素。如果这个参数是负数,它声明的是从数组尾部开始算起的元素。
返回值: 一个新数组,包含从start到end(不包括该元素)指定的array元素。
描述:方法slice()将返回array的一部分,或者说是一个子数组。返回的数组包含从start开始到end之间的所有元素,但是不包括end所指的元素。如果没有指定end,返回的数组包含从start开始到原数组结尾的所有元素。
注意,该方法并不修改数组。如果想删除数组中的一段元素,应该使用方法Array.splice()。
例子:
var a = [1, 2, 3, 4, 5]; a.slice(0, 3); // Return [1,2,3] a.slice(3); // Return [4,5] a.slice(1, -1); // Return [2,3,4] a.slice(-3, -2); // Return [3]; buggy in IE 4: return [1,2,3]
1.11 sort()
语法: array.sort()
array.sort(orderfunc)
orderfunc
用来指定按什么顺序进行排序的函数,可选。
返回值: 对数组的引用。注意,数组在原数组上进行排序,不制作副本。
描述:方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没使用参数,将按字母顺序(更精确地说,是按 照字符编码的顺序)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转成字符串(如果有必要的话),以便进行比较。
如果想按照特别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:
● 如果根据你的评判标准,a小于b,在排序后的数
例子: 下面的代码展示了如何编写按数字顺序,而不是按字母顺序对数组进行排序的比较函数:
//An ordering function for a numerical sort function numberorder(a, b) { return a - b; } var a = new Array(33, 4, 1111, 222); a.sort(); //Alphabetical sort: 1111, 222, 33, 4 a.sort(numberorder); //Numerical sort: 4, 33, 222, 1111
1.12 splice(start, deleteCount, value, ...)
语法: array.splice(start, deleteCount, value, ...)
start
开始插入和(或)删除的数组元素下标。
deleteCount
从start开始,包括start所指的元素在内要删除的元素个数。这个参数是先用的,如果没有指定它,splice()将删除从start开始到原数组结尾的所有元素。
value, ...要插入数组的零个或多个值,从start所指的下标处开始插入。
返回值: 如果从array中删除了元素,则返回的是含有被删除的元素的数组。
描述:方法splice()将删除从start开始(包括start所指的元素在内)的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的 元素。位于插入或删除的元素之后的数组元素都会被移动,以保持它们与数组其它元素的连续性。注意,虽然splice()方法与slice()方法名称很相 似,但作用不同,方法splice()直接修改数组。
例子:
var a = [1, 2, 3, 4, 5, 6, 7, 8]; a.splice(4); // Returns [5,6,7,8] ; a is [1,2,3,4] a.splice(1, 2); // Returns [2,3] ; a is [1,4] a.splice(1, 1); // Returns [4] ; a is [1] a.splice(1, 0, 2, 3); // Returns [] ; a is [1,2,3]
1.13 toSource()
语法: object.toSource()
注释:该方法在 Internet Explorer 中无效。
返回值: 一个新数组,是把指定的所有参数添加到array中构成的。
描述: toSource() 方法表示对象的源代码。该原始值由 Array 对象派生的所有对象继承。toSource() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。
例子:
function employee(name, job, born) { this.name = name; this.job = job; this.born = born; } var bill = new employee("Bill Gates", "Engineer", 1985); document.write(bill.toSource()); Return: // ({name:"Bill Gates", job:"Engineer", born:1985})
1.14 toString()
语法: array.toString()
TypeError
调用该方法时,若对象不是Array,则抛出该异常。
返回值: array的字符串表示。
描述:数组的toStirng()方法将把数组转换成一个字符串,首先是把每个数组元素转换为字符串并且返回这个字符串。当数组用于字符串环境中,JavaScript会调用这一方法将数组自动转换成一个字符串。但在某些情况下,需要显式地调用这个方法。
toString() 在把数组转换成字符串时,首先要将数组的每个元素都转换成字符串(通过调用这些元素的toString()方法)。当每个元素都被转换成字符串时,它就以 列表的形式输出这些字符串,字符串之间用逗号分隔。返回值与没有参数的join()方法返回的字符串相同。
1.15 toLocaleString()
语法: array.toLocaleString()
TypeError
调用该方法时,若对象不是Array,则抛出该异常。
返回值: 数组array的局部字符串表示。
描述:数组的方法toLocaleString()将返回数组的局部字符串表示。它首先调用每个数组元素的toLocaleString()方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个新字符串。
1.16 unshift()
语法: array.unsift(value, ...)
其中value, ... 要插入数组头部的一个或多个值。
返回值: 数组的新长度。
描述:方法unshift()将把它的参数插入array的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组新的 元素0,如果还有每二个参数,它将成为新的元素1,以经类推。注意,unshift()不创建新数组,而是直接修改原有数组。
例子: 方法unshift()通常和方法shift()一起使用。
var a = []; // a : [] a.unshift(1); // a : [1] Return 1 a.unshift(22); // a : [22,1] Return 2 a.shift(); // a : [1] Return 22 a.unshift(33, [4, 5]); // a : [33,[4,5],1] Return 3
1.17 valueOf()
语法: arrayObject.valueOf()
返回值: valueOf() 方法返回 Array 对象的原始值。
描述: 该原始值由 Array 对象派生的所有对象继承。valueOf() 方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。
var bool = new Boolean(0); document.write(bool.valueOf());
输出false