javascript数组对象实例方法有:pop(),push(),reverse(),shift(),sort(),splice(),unshift(),concat(),join(),slice()
pop() : 移除数组中最后一个元素,并返回该元素。 如下:
var a=[1,2,3] ; console.log(a.pop()); // 输出 3 console.log(a); //输出 [1,2]
push() : 向数组尾部添加元素,并返回该数组的大小。如下:
var a =[1,2,3]; console.log(a.push(7)); //输出 4 console.log(a); //输出 [1,2,3,7]
reverse(): 倒置数组中的元素,并返回已倒置的数组。如下:
var a=[1,2,3,4]; var b = a.reverse(); console.log(b); // [4,3,2,1]
shift() : 移除数组中第一个元素,并返回该元素。 如下:
console.log([1,2,3,4].shift()); // 1 console.log([4,5,6].shift()); // 4
sort() : 对数组元素进行排序。说明:方法参数可选。
(1)如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。如下:
console.log([1,2,3,4].sort()); // [1,2,3,4] console.log([3,2,4,1].sort()); // [1,2,3,4] console.log(['a','b','c','d'].sort()); // ['a','b','c','d'] console.log(['c','a','d','b'].sort()); // ['a','b','c','d']
(2)如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
- 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
- 若 a 等于 b,则返回 0。
- 若 a 大于 b,则返回一个大于 0 的值。
var sortProFn = function(a,b){ return a-b }; var nuar = [19,4,13,10,5,7,5,20] ; nuar.sort(sortProFn); console.log(nuar); // [ 4, 5, 5, 7, 10, 13, 19, 20 ]
splice() : 从一个数组中移除一个或多个元素,如果必要,在移除元素的位置上插入新元素,返回所移除的元素。其中参数说明:splice(arg1,arg2,arg3.....,argn); 前面两个参数arg1,arg2是必需的,参数arg3....argn: 可选,向数组添加的新项目。 参数arg1 : 整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。参数arg2: 要删除的项目数量。如果设置为 0,则不会删除项目
//只有前面两个参数情况下splice(arg1 , arg2),表示从数组第(arg1+1)个元素开始删除,总共删除元素个数为arg2。返回被删除的元素。 var a = [1,2,3,4]; console.log(a.splice(1,2)); // [2,3] console.log(a); // [1,4] console.log([1,2,3,4].splice(2,3)); // [2,3,4] console.log([1,2,3,4].splice(2,20)); // [2,3,4] //参数arg3...argn,向移除元素的位置上插入新元素。 var a = [5,6,7,8,9]; console.log(a.splice(1,2,3,4)); // [6,7] console.log(a); // [5,3,4,8,9] var b = [5,6,7,8,9] console.log(b.splice(1,2,3,4,11,13,14)); // [6,7] console.log(b); // [ 5, 3, 4, 11, 13, 14, 8, 9 ]
unshift() : 添加新元素到数组开始位置,并返回该数组大小,如下:
var a=[1,2,3,4]; console.log(a.unshift()); //输出4 (没有参数,不添加元素) console.log(a); //输出 [1,2,3,4] console.log(a.unshift(8)); //输出5 (有参数,向数组开始位置插入元素8。) console.log(a); //输出 [8,1,2,3,4]
concat():多个数组组合,返回组合后新数组。参数为去组合的多个数组。如下:
var a = [1,2]; var b = [2,3,4]; var c = a.concat(b); console.log(c); // [1,2,2,3,4] var d = c.concat([7,6],[8,9],[11,12,13]); console.log(d); //[1,2,2,3,4,7,6,8,9,11,12,13] var e = [].concat([0],[1],[2],[3],[4],[5],[6],[7],[8],[9]); console.log(e); //[0,1,2,3,4,5,6,7,8,9]
join() : 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。返回该字符串,如下:
console.log(['a','b','c'].join("|")); // 'a|b|c'
slice() : 返回数组其中一段元素组成的新数组。选择哪段元素由参数控制。说明:此方法不会修改该数组,返回新的数组。如下:
// 只有一个参数情况下(start)。如果为正数,选取数组的第(start+1)个元素及其后面所有元素。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 console.log([1,2,3,4,5].slice(1)); //[2,3,4,5] console.log([7,8,9].slice(-1)); // [9] console.log([7,8,9].slice(-1)); // [8] //参数(start,end) 选取方式是从数组的第(start+1)个元素到数组的第end个元素。 console.log([1,2,3,4,5].slice(1,3)); // [2,3]