数组的操作方法
1、数组的操作方法
数组的尾部操作:
push() 向数组的尾部添加一个或多个的数据
pop() 将数组尾部的数据删除
数组头部操作:
unshift() 向数组的头部添加一个或多个元素
shift() 删除数组头部元素
数组中间数据操作(也适用于头尾部):可以实现 添加、 删除、替换 操作
splice( start length ) 表示从start位置处 删除 指定length的数据 start:就是下标 length :长度
第一个值是start:添加或删除的起始位置
第二个值是0:添加
非0:删除,替换(先删除后添加) 数字为删除的个数
第三个值(个数不固定):数据
上述五个方法都改变原数组
slice(start,end) 截取从start位置 到 end-1 位置处的数据 返回截取后的数据
join(字符) 将数组中的数据通过 某个 字符 连接起来 返回一个字符串
扩展小技巧:快速的计算 数组中所有数据的和
eval(arr.join("+"));
reverse() 数组 的反转 返回的是反转后的数组(改变原数组)
2、数组中的排序方法sort()
用法: 数组名.sort()
当没有参数时,默认是按照 字符 进行 升序排序
如果想对数值进行排序,sort需要提供一个参数,该参数是一个匿名函数
用法:数组名.sort( function(a,b){
return a -b;升序(a>b a-b>0) return b-a; 降序(a<b a-b<0)
})
3、数组的扩展方法
indexOf(参数)
判断某个数据在数组中是否存在,如果存在就返回数组的下标 如果不存在就返回-1
数组.indexOf(num)
//indexOf( 参数 ) 判断某个数据在数组中是否存在 如果存在就返回这个数在数组中的下标 如果不存在就返回-1
function fnIndexOf() {
var arr = [1, 2, 3, 4, 5];
alert(arr.indexOf(2));
}
//fnIndexOf();
function noRepeat(arr) {
var brr = [];
for (var i = 0; i < arr.length; i++) {
//判断arr[i]在brr中是否存在
if (brr.indexOf(arr[i]) == -1) {//如果不存在
brr.push(arr[i]);
}
}
return brr;
}
//alert( noRepeat( [1,2,3,1,2,3] ) );
forEach()
遍历数组 没有返回值
//forEach() 遍历数组 没有返回值
function fnForEach() {
var arr = [11, 2, 32, 43, 5];
arr.forEach(function (item,index,arr) {
// item : 表示数组中的数据
// index : 表示下标
// arr : 表示遍历的 数组
console.log(item);
})
}
fnForEach();
//获取数组中的最小值
function getMin(arr) {
//shift() 删除数组头部元素 返回值删除的元素
//假设数组中第一个数是最小的
var min = arr.shift();//arr[0]
arr.forEach(function (item) {
min = item < min ? item : min;
})
alert(min);
}
//getMin( [23,1,4,5,67,78] );
filter()
过滤 返回满足某个条件的数组中的数据 返回值是一个数组
//filter() 过滤 返回满足某个条件的数组中的数据 返回值是一个数组
function fnFilter(arr) {
//brr用于接收filter的返回值
var brr = arr.filter(function (item) {
return item > 0;
})
return brr;
}
//alert( fnFilter( [12,-2,-3,-5,89,-9,78,6] ) );
map()
映射 : 遍历数组---操作数组---返回数组
返回值是一个数组
//map() 映射 : 遍历数组 ---操作数组---返回数组
function fnMap(arr) {
var brr = arr.map(function (item) {
return item * 1.3;//操作数组并将结果存入到一个新的数组中
})
return brr;
}
//alert( fnMap( [10,20,30,40,50] ) );
reduce()
归并 返回最后一次操作的结果 计算数组的和
第一个参数:前一个操作返回的结果,默认第一个为数组中的第一个数据
第二个参数:下一个数 除了数组中第一个数之外的所有数
//reduce() 归并 返回最后一次操作的结果
function fnReduce() {
var arr = [11, 2, 3, 4, 5];
document.write("prev" + "-----" + "next<br>");
var res = arr.reduce(function (prev, next) {
//prev : 前一个操作返回的结果 默认第一个为数组中的第一个数据
//next : 下一个数 除了数组中第一个数之外的所有数
document.write(prev + "---" + next + "<br>");
return prev + next;
})
alert(res);
}
// fnReduce();