1.数组的普通方法
1. concat(X,X , X) 合并数组,该方法不会改变原数组(X可以是具体的值,也可以是数组,可以传任意多个)
var arr = [1, 2, 3]
var arr1 = arr.concat(4, 5)
console.log(arr);//返回的原数组
console.log(arr1);//返回新的数组
2.push(X,Y)数组末尾添加,该方法会改变原数组(X(必填)为要添加数组的第一个元素,Y(选填)为要添加数组的第二个元素,可以添加多个元素)
var arr = [1, 2, 3]
var arr2 = [1, 2]
var arr1 = arr.push(1, 2, 3)
console.log(arr);
3.splice(x,y,z)向数组添加或删除,然后返回的是被删除的项目,该方法会改变原数组(x(必填,整数)为要添加或删除开始的位置。 y(必填 )为要删除几个数据,如果为0则不删除。y(选填)像数组添加新的项目)
var arr = [1, 2, 3]
var arr1 = arr.splice(1, 2, 4)
console.log(arr);
console.log(arr1);
4.slice(x,y)从已有数组中返回指定元素,不会改变原数组。(x(必填)从何处开始选取,y(选填)在何处停止截取,没有参数的话就从开始截取到结束)
var arr = [1, 2, 3]
var arr1 = arr.slice(1, 2)
var arr2 = arr.slice(1, )
console.log(arr);
console.log(arr1);
console.log(arr2);
5.pop() 方法将删除 arr的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值,该方法会改变原数组。
var arr = [1, 2, 3]
var arr1 = arr.pop()
console.log(arr);
console.log(arr1);
6.shift() 方法用于把arr的第一个元素从其中删除,并返回第一个元素的值。该方法会改变原数组
var arr = [1, 2, 3]
var arr1 = arr.shift()
console.log(arr);
console.log(arr1);
7. unshift() 方法可向数组的开头添加一个或更多元素,并返回数组长度,该方法会改变原数组
var arr = [1, 2, 3]
var arr1 = arr.unshift(5, 6, 7)
console.log(arr);
console.log(arr1);
8 reverse() 方法用于颠倒数组中元素的顺序,该方法会改变原数组
var arr = [1, 2, 3]
var arr1 = arr.reverse()
console.log(arr);
console.log(arr1);
9.indexOf() 获取元素在数组中的索引,从前面像后面查找,如果找到了就返回找到的第一个的索引,如果没有就返回-1。
var arr = [1, 2, 3, 1, 1]
var arr1 = arr.indexOf(1)
console.log(arr);
console.log(arr1);
10.lastIndexOf() 获取元素在数组中的索引,从后面像前面查找,如果找到了就返回找到的第一个的索引,如果没有就返回-1。
var arr = [1, 2, 3, 1, 1]
var arr1 = arr.lastIndexOf(1)
console.log(arr);
console.log(arr1);
11.sort()方法用于对数组的元素进行排序,该方法会改变原数组(a-b为升序,b-a为降序)
var arr = [1, 2, 3, 1, 1]
var arr1 = arr.sort(function(a, b) {
return b - a
})
console.log(arr);
console.log(arr1);
12.join()方法用于把数组中的所有元素转换成字符串,如果括号不放参数,那么将用逗号隔开,该方法不会改变原数组
var arr = [1, 2, 3, 1, 1]
var arr1 = arr.join('.')
console.log(arr);
console.log(arr1);
2.数组的迭代方法
1.some若数组中的有一个元素满足条件,则返回true,若都不满足,则返回false
var arr = [1, 2, 3, 1, 1];
var flang = arr.some(function(itme) {
return itme >= 3
})
console.log(flang);
2.every若数组中每一个元素都满足条件,则返回true,有一个不满足,则返回false
var arr = [1, 2, 3, 1, 1];
var flang = arr.every(function(itme) {
return itme >= 3
})
console.log(flang);
3.filter方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
var arr = [1, 2, 3, 1, 1];
var flang = arr.filter(function(itme) {
return itme >= 2
})
console.log(flang);
console.log(arr);
4.map对原数组数据进行处理之后,返回新数组,该方法不会改变原数组
var arr = [1, 2, 3, 1, 1];
var flang = arr.map(function(itme) {
if (itme > 2) {
return itme + 2
}
return itme
})
console.log(flang);
console.log(arr);
5.reduce(function(a,b){}) 对原数组进行运算合并多维数组,返回一个新数组,该方法不会改变原数组
a的值第一次为arr的第一个值,第二次a为你计算或合并的值
var arr = [1, 2, 3, 1, 1];
var flang = arr.reduce(function(a, b) {
console.log(a, b);
return a + b;
})
console.log(flang);
console.log(arr);
//合并多维数组
var arr2 = [[10, 20, 30], ['hello'], [50, 100], [40], [70, 11, 22]];
var arrx = arr.reduce(function (a, b) {
return a.concat(b)
})
6. forEach()方法用于调用数组的每个元素,并将元素传递给回调函数。
var arr = [1, 2, 3, 1, 1];
arr.forEach(function(value, index, array) {
//value:便利数组的内容
//index:对应数组的索引
//array:数组本身
console.log(value, index, array);
})