数组对象是使用单独的变量来存储一系列值。
属性
length
:返回数组中元素个数prototype
:构造函数的原型,允许向数组内添加属性和方法。
方法
isArray( )
:判断参数是否为数组类型。参数必选,需要判断的值。
console.log(Array.isArray([1, 2, 3]));// true
console.log(Array.isArray({x: 1, y: 2}));// false
console.log(Array.isArray('[1, 2, 3]'));// false
console.log(Array.isArray(undefined));// false
concat( )
:用于连接两个或多个数组,返回一个新数组。参数必选,一个或多个,可为具体的值或者数组。
var arr1 = [1, 2, 3];
var arr2 = [4, 5, 6];
var arr3 = [7, 8, 9];
console.log(arr1.concat(arr2, arr3, 100, 101));// [1, 2, 3, 4, 5, 6, 7, 8, 9, 100, 101]
fill( )
:用一个固定值填充指定位置上的值。三个参数:第一个必选,用来填充数组的值;第二个可选,起始索引,默认为0;第三个可选,结束索引,默认为最后一位。
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9,];
console.log(arr.fill(0));// [0, 0, 0, 0, 0, 0, 0, 0, 0]
console.log(arr.fill(0, 2));// [1, 2, 0, 0, 0, 0, 0, 0, 0]
console.log(arr.fill(0, 2, 5));// [1, 2, 0, 0, 0, 6, 7, 8, 9]
filter(callback)
:用于筛选满足条件的数组的值。参数必选,用于筛选
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
var newArr = arr.filter(function(item) {
return item > 5
})
console.log(newArr);// [6, 7, 8]
find( )
:返回满足条件的第一个值,没有满足条件的值则返回undefined。参数必选,用于筛选。
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
var newArr1 = arr.find(function(item) {
return item > 5
})
var newArr2 = arr.find(function(item) {
return item > 10
})
console.log(newArr1);// 6
console.log(newArr2);// undefined
findIndex( )
:返回满足条件的第一个值的索引,没有满足条件的值则返回-1。参数必选,用于筛选。
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
var newArr1 = arr.find(function(item) {
return item > 5
})
var newArr2 = arr.findIndex(function(item) {
return item > 10
})
console.log(newArr1);// 6
console.log(newArr2);// -1
forEach(callback)
:用于循环当前数组。callback接收三个参数,第一个为当前元素,第二个胃当前元素的索引值,第三个为当前数组。
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
arr.forEach(function(item, index, array) {
console.log(item)
console.log(index)
console.log(array)
})
includes( )
:判断数组是否包含指定元素,包含返回true,不包含返回false。参数必选,代表指定元素。
var arr = [1, 2, 3, 4, 5, 6, 7, 8];
console.log(arr.includes(6));//true
console.log(arr.includes(10));//false
indexOf(index)
:返回指定元素的第一个索引值,没有返回-1。index指查找的起始位置。
var arr = [1, 2, 3, 1, 2, 3];
console.log(arr.indexOf(2));//1
console.log(arr.indexOf(4));//-1
join( )
:将一个数组以指定字符连接起来,返回一个字符串。参数可选,连接数组的字符,默认为“,”。
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr.join('-'));//1-2-3-4-5-6
console.log(arr.join());//1,2,3,4,5,6
lastIndexOf(index)
:返回指定元素的最后一个索引值,没有返回-1。逆向查找,index指查找的起始位置。
var arr = [1, 2, 3, 1, 2, 3];
console.log(arr.lastIndexOf(2));//4
console.log(arr.lastIndexOf(4));//-1
map(callback)
:创建一个新数组,数组中每个元素都执行一遍callback中的操作。callback参数与forEach中一致。
var arr = [1, 2, 3];
var newArr = arr.map(function(item) {
return item = item + 1;
})
console.log(newArr);[2, 3, 4]
pop( )
:删除数组中最后一个元素,并返回其值。
var arr = [1, 2, 3];
console.log(arr.pop());//3
console.log(arr);//[1, 2]
push( )
:向数组末尾添加元素,并返回数组的长度。
var arr = [1, 2, 3];
console.log(arr.push(5));//4
console.log(arr);//[1, 2, 3, 5]
reverse( )
:将数组中的元素位置颠倒。
var arr = [1, 2, 3, 4, 5];
console.log(arr.reverse());//[5, 4, 3, 2, 1]
shift( )
:删除数组中第一个元素,并返回其值。
var arr = [1, 2, 3, 4, 5];
console.log(arr.shift());//1
console.log(arr);//[2, 3, 4, 5]
slice( )
:截取数组,返回新的数组。两个参数,第一个必选,截取的起始位置下标;第二个可选,截取的结束位置下标,默认为数组最后。
var arr = [1, 2, 3, 4, 5];
console.log(arr.slice(1));//[2, 3, 4, 5]
console.log(arr.slice(1, 3));//[2, 3]
sort( )
:数组排序。参数可选,默认按照字符编码的顺序进行排序。如要按照数字大小进行拍讯,参数必须写成一个排序函数。
var arr = [4, 74, 3, 73, 5, 12, 9];
var newArr = arr.sort(function(x, y) {
return x - y;
})
console.log(newArr);//[3, 4, 5, 9, 12, 73, 74]
splice( )
:把数组中指定元素替换成另一个元素,返回替换的元素。三个参数:第一个参数,必选,需要替换元素的位置下标;第二个参数,必选,替换的个数;第三个元素,可选,要被替换成的元素,默认为‘’。
var arr = [1, 2, 3, 4, 5];
console.log(arr.splice(3, 1, 'a'));//[4]
console.log(arr);//[1, 2, 3, "a", 5]
console.log(arr.splice(2, 1));//[3]
console.log(arr);//[1, 2, "a", 5]
toString( )
:将数组转为字符串,并返回结果。
var arr = [1, 2, 3, 4, 5];
console.log(arr.toString());//1,2,3,4,5
unshift( )
:将一个或多个元素添加至数组开头,并返回数组长度。
var arr = [1, 2, 3, 4, 5];
console.log(arr.unshift('a', 'b'));//7
console.log(arr);//["a", "b", 1, 2, 3, 4, 5]