length
计算数组的长度:
var arr=[1,2,3,4,5,6];
alert(arr.length);//弹出结果是6
concat()
连接两个或者跟多的数组,并返回结果:
var arr1 = [1,2,3];
var arr2 = arr1.concat(4,5);
var arr3 = arr1.concat([4,5]);
console.log(arr2);//返回[1,2,3,4,5]
console.log(arr3);//返回[1,2,3,4,5]
也有复制数组的功能:
var arr1 = [1,2,3];
var arr4 = arr1.concat();
console.log(arr4);//返回[1,2,3]
join()
把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分隔:
var arr=["a","b","c","d"];
console.log(arr);//返回["a", "b", "c", "d"]
console.log(arr.join(";"));//返回a;b;c;d
pop()
删除数组末尾最后一个元素,返回被删除的元素,若数组为空则返回undefined:
var arr=[1,2,3];
alert(arr.pop());//返回3
console.log(arr);//返回[1,2]
var arr2=[];
alert(arr2.pop());//返回undefined
console.log(arr2);//返回[]
push()
在数组的尾部添加一个或者多个元素,并返回数组的新长度。注意(改变的是原数组的值,返回的是新数组的长度):
var arr = [1,3];
console.log(arr.push(5,7));//返回4是数组长度
console.log(arr);//返回[1, 3, 5, 7]
reverse()
对数组中的数据进行反转,返回反转后的数组:
var arr = [1,3,2];
console.log(arr.reverse());//返回[2,3,1]
shift()
删除数组头部的第一个元素,并返回被删除的元素,若数组为空则返回undefined:var arr = [1,2,3];
console.log(arr.shift());//返回头部被删除的1
var arr1 = [];
console.log(arr1.shift());//返回undefined
unshift()
在数组头部添加若干元素,返回添加元素后数组的长度:
var arr = [1,2,3];
alert(arr.unshift("a","b"));//返回5是数组长度
slice()
返回指定数组的一部分或者子数组。不会改变原数组:
var arr = [1,2,3,4,5,6,7,8];
console.log(arr.slice(0,3)); //返回[1,2,3] 第一个参数是截取开始的位置(包括),第二个参数是截取结束的位置(不包括)
console.log(arr.slice(3)); //返回[4,5,6,7,8]
console.log(arr.slice(1,-1)); //返回[2,3,4,5,6,7] 负数表示倒数
console.log(arr); //返回[1,2,3,4,5]
sort()
返回排序后的数组。如果数组包含undefined,会被排到数组的尾部。如果不带参数的调用sort(),数组元素以字母表顺序排序:
var arr = [11111,333,22,444];
console.log(arr.sort()); //返回的结果是[11111,22,333, 444]
var arr = [11111,333,22,444];
arr.sort(function (a,b) {
return (a-b);
})
console.log(arr); //返回[22,333,444,11111]//从小到大排列,从大到小就b-a
splice()
从指定位置删除若干元素,然后再从该位置添加若干元素,结果返回被删除的元素,第一个参数表示起始删除的位置,第二个参数表示要删除元素的个数,之后的元素表示要添加的元素:
var arr = ["a","b","c"];
alert(arr.splice(1,2,"d","e"));//从位置1开始删除2个元素,在1位置添加"d","e"两个元素,返回"b","c"
alert(arr);//arr数组变为a,d,e
alert(arr.splice(0,3));//从位置0开始,删除3个元素,返回"a","d","e"
alert(arr);//arr数组为空
forEach()
从头至尾遍历数组,为每个元素调用指定的函数:
var arr = [1,2,3,4,5];
var sum = 0;
arr.forEach(function (value) {
sum += value
})
console.log(sum); //sum = 15
map()
和forEach()类似,调用数组的每个元素传递给指定函数,并返回一个数组,所以它和forEach()的区别在于,有一个返回值。不修改原数组,返回的数组长度和原数组相同:
var arr1 = [1,2,3,4,5];
var arr2 = arr1.map(function (value) {
return value+1
})
console.log(arr2); //返回[2,3,4,5,6]
reduce()
从数组的第一项开始,逐个遍历到最后,函数接受两个参数,一个是在数组上调用的函数和归并的初始值(可选),而调用数组的函数接受四个参数:前一个值、当前值、当前值索引、当前数组,第一次调用时,前一个值是数组第一项,当前值是数组第二项:
var arr = [1,2,3,-1];
var result = arr.reduce(function(prev,cur,index,array){
return prev+cur
})
alert(result);//返回5