数组的常用方法
1.length()
(1)用于设置或返回数组的中元素的数目。
var arr=[1,2,3,4,5,6];
console.log(arr.length);
2.push()
(1)用于向数组的末尾添加一个或多个元素,并返回新数组的长度,也就是添加元素后数组的长度,改变原数组。
var arr=[1,2,3,4,5,6];
console.log(arr.push(5));
3.shift()
(1)用于把数组的第一个元素从其中删除,并返回第一个元素的值,改变原数组。
var arr=[1,2,3,4,5,6];
console.log(arr.shift());
4.unshift()
(1)向数组的开头添加一个或多个元素,返回新数组的长度,改变原数组。
var arr=[1,2,3,4,5,6];
console.log(arr.unshift(7));
console.log(arr);
5.pop()
(1)用于删除并返回数组最后一个元素,改变原数组。
var arr=[1,2,3,4,5,6];
console.log(arr.pop());
6.splice()
(1)用于插入,删除或替换数组的元素,当进行删除时返回被删除的项目,该方法改变原数组。
splice(index,howmany,item1, ..., itemX);
index:必填值,整数,规定添加/删除的位置,使用负数从数组结尾处规定位置;
howmany:必填值,要删除的数量。如果设置为0,则不会删除项;
item1, ..., itemX:可选,向数组添加新的项。
删除功能:
var arr=[1,2,3,4,5,6];
console.log(arr);
var newArr=arr.splice(0,3)
console.log(newArr);
删除替换功能:(从数组的第一项删除两项用34替换)
var arr=[1,2,3,4,5,6];
console.log(arr);
var newArr=arr.splice(0,2,34)
console.log(arr);
console.log(newArr);
插入功能:
var arr=[1,2,3,4,5,6];
console.log(arr);
var newArr=arr.splice(1,0,9)
console.log(arr);
7.slice()
(1)从已有数组中返回选定的元素,返回一个新数组,包含从start到end的数组元素,不改变原数组。
slice(start,end) 前闭后开
注意:该方法不会改变原数组,而是返回一个子数组,包含从start到end(不包括该元素)的元素
start:必传,规定从何处开始选取,如果为负数,规定从数组尾部算起的位置,-1为数组的最后一个元素。
end:可选,如果该参数没有指定,那么切分数组包含从start到数组结束的所有元素,如果这个参数为负数,那么规定是从数组尾部开始算起的元素。
var arr=[1,2,3,4,5,6];
var newArr=arr.slice(1,4)
console.log(arr);
console.log(newArr);
8.join()
(1)将一个数组的所有元素根据传入的参数连接成一个字符串,并返回这个字符串,不改变原数组。
var arr=[1,2,3,4,5,6];
var newArr=arr.join('-')
console.log(arr);
console.log(newArr);
9.toString()
(1)把数组替换成字符串,并返回结果。
var arr=[1,2,3,4,5,6];
var newArr=arr.toString()
console.log(arr);
console.log(newArr);
10.reverse()
(1)用于将数组倒置,改变原数组。
var arr=[1,2,3,4,5,6];
console.log(arr);
var newArr=arr.reverse()
console.log(arr);
console.log(newArr);
11.concat()
(1)用于连接两个或多个数组,不改变原数组。
var arr=[1,2,3,4,5,6];
var arr1=[9,10,11,12];
console.log( arr.concat(arr1));
12.indexOf()
(1)查找数组中的某一项,当该项存在于数组中时,返回该项的下标,不存在时,返回-1
var arr=[1,2,3,4,5,6];
console.log(arr.indexOf(5));
console.log(arr.indexOf(9));
13.forEach()
(1)遍历数组中的每一项,该方法用于调用数组中每一项元素,并将元素传递给回调函数,改变原数组。
用法:array.forEach(function(cunrrent,index,arr){},thisValue)。
cunrrent:必填,当前元素;
index:可选,当前元素的索引;
arr:可选,当前元素所属的数组对象;
thisValue:可选,传递给函数的值一般一般用this的值,如果这个参数为空,"undefined"会传递给"this"值(这个一般很少用)。
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);
arr.forEach(function (value, index, array) {
arr[index] = value * 2;
});
console.log(arr);
14.map()
(1)遍历数组的每一项,返回一个新数组,不改变原数组,新数组中的元素为原数组中的每个元素调用函数处理得到的值。
语法:array.map(function(item,index,arr){})
注意:1.map()不会对空数组进行检查。
2.map()不会改变原数组。
3.map()是数组的方法,有一个参数,参数为一个函数,函数中传入三个参数。
参数1:item必填,当前元素的值;
参数2:index可选,当前元素在数组中的索引值;
参数3:arr可选,当前元素所属的数组对象。
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);
var newArr = arr.map(function (item, index, arr) {
return item * 2;
});
console.log(arr);
console.log(newArr);
15.filter()
(1)语法:array.filter(function(value,index,arr){},thisValue)
需要一个回调函数用来写过滤的逻辑,把所有符合条件的数组放到新数组中返回,返回一个过滤的新数组,不改变原数组。
(2)参数:
value:必选参数,指向原数组中的当前项;
index:可选项,value的索引;
arr:可选项,当前元素所属的数组对象。
(3)用法:filter它用于Array的某些元素过滤掉,返回剩下的元素。和map()类似,Array的filter()也接收一个函数,和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。其中filter()返回的数组内是所有满足条件的元素,而find()只返回第一个满足条件的元素,如果条件不满足,filter()返回一个空数组,find()返回undefined。
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);
var newArr = arr.filter(function (value, item, arr) {
return value > 2;
});
console.log(arr);
console.log(newArr);
16.find()
(1)主要用于查找第一个符合条件的数组元素,参数为一个函数,在回调函数中可以写你查找的条件,当条件为true时,返回该元素,如果没有符合条件的元素,返回undefined。
find()方法不会更改原始数组。
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);
var newArr = arr.find(function (value, item, arr) {
return value > 2;
});
console.log(arr);
console.log(newArr);
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);
var newArr = arr.find(function (value, item, arr) {
return value >7;
});
console.log(arr);
console.log(newArr);
17.every()
(1)遍历数组的每一项,只有所有元素都满足条件时,则返回true,如果有一个元素不满足条件则返回false,不改变原数组。
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);
var newArr = arr.every(function (value, item, arr) {
return value >7;
});
console.log(arr);
console.log(newArr);
18.some()
(1)与every相反,遍历数组,当有一个元素满足条件即返回true。不改变原数组。
注意:遍历数组时,有一个元素满足条件就返回true,不在向右查找。
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);
var newArr = arr.some(function (value, item, arr) {
return value >2;
});
console.log(arr);
console.log(newArr);
19.reduce()
(1)用于对数组中的每一项求收敛,求和;不改变原数组。
Array.reduce(function(prev,next,index,arr){})
prev=>初始值或上一次回调函数叠加的值;
next=>本次回调(循环)将要执行的值;
index=>value的索引值;
arr=>数组本身。
reduce()返回的是最后一次调用函数的返回值。
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);
var a = arr.reduce(function (prev, next) {
console.log(prev, next);
return prev+next;
});
console.log(arr);
console.log(a);
20.includes()
(1)遍历数组,存在就返回true,不存在就返回false,不改变原数组。
var arr = [1, 2, 3, 4, 5, 6];
console.log(arr);
var a = arr.includes(5);
var b = arr.includes(7);
console.log(arr);
console.log(a);
console.log(b);
21.sort()
(1)用于对数组的元素进行排序,并返回数组,改变原数组。
var arr = [99, 5, 20, 4, 54, 23, 18];
console.log(arr);
var newArr = arr.sort(function (a, b) {
return a - b;
});
console.log(newArr);
console.log(arr);